{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import struct"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "b'\\x00\\x00\\x00\\x02'"
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "struct.pack('>i',2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "b'\\x02'"
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "struct.pack('>B', 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": "(2051, 60000, 28, 28)\n"
    }
   ],
   "source": [
    "with open('./MNIST_data/train-images-idx3-ubyte', 'rb') as f:\n",
    "    buffer = f.read(4*4)\n",
    "    head = struct.unpack('>iiii', buffer)\n",
    "    print(head)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('./MNIST_data/train-images-idx3-ubyte', 'rb') as f:\n",
    "    buffer = f.read(4*4)\n",
    "    head = struct.unpack('>iiii', buffer)\n",
    "    length = head[1] * head[2] * head[3]\n",
    "    buffer = f.read(length)\n",
    "    data = struct.unpack('>{}B'.format(length), buffer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "47040000"
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "tuple"
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "images = np.reshape(data, (head[1],head[2], head[3]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(60000, 28, 28)"
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "images.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 251.565 248.518125\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 251.565 248.518125 \nL 251.565 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \nL 244.365 7.2 \nL 26.925 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p001fb49d5a)\">\n    <image height=\"218\" id=\"imageb3be730bf1\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAANoAAADaCAYAAADAHVzbAAAABHNCSVQICAgIfAhkiAAABh1JREFUeJzt3btL1v0fx3Hvn9JwdxIbCoIIG4yKCDoIEUkEBVGQHYaG1iapqSUIWowgapAapCHwPyhaCiFrCCTpNARBUwSOCZ0ozO7pHn7wu97Spb78qY/H+uLr9zv45APXl0v/amlp+d0CzKn/zPcDwFIgNAgQGgQIDQKEBgFCgwChQYDQIEBoECA0CBAaBAgNAoQGAUKDAKFBgNAgQGgQIDQIEBoECA0ChAYBQoOAtvm8+bVr18r94sWLc3bvt2/flvuDBw/KfXJystxv3LjRcJuYmCivZfFxokGA0CBAaBAgNAgQGgQIDQKEBgF/tczjv23q7u4u9+neo+3Zs6fhtn79+qaeabZ8+/at4TYwMFBee/Xq1XL/+vVrU8/E/HGiQYDQIEBoECA0CBAaBAgNAoQGAfP6Hm2mOjo6Gm6Dg4PltTt27Cj3zs7Opp5pNjx79qzcq++6tbS0tDx8+LDcv3///sfPxMw40SBAaBAgNAgQGgQIDQKEBgFCg4AF/R5tJtauXVvuW7ZsKfdbt26V++bNm//4mWbL6OhouV+/fr3hdu/evfLaqamppp5pqXOiQYDQIEBoECA0CBAaBAgNAoQGAUv2PdpMrVu3rtzPnDnTcOvr6yuv3bhxYzOPNCvGxsbKvb+/v9zv378/m4+zaDjRIEBoECA0CBAaBAgNAoQGAT7enwddXV3lPt3H/ydOnCj36V49zMSvX7/KfXh4uNyPHDkym4+zYDjRIEBoECA0CBAaBAgNAoQGAUKDAO/RFqDt27eX+6lTp8p99+7dDbdDhw419Uz/evPmTbnv3Lmz4baY/5SdEw0ChAYBQoMAoUGA0CBAaBAgNAjwHo3/8uPHj3Jva2sr98nJyXI/fPhww21kZKS8diFzokGA0CBAaBAgNAgQGgQIDQKEBgH1SxEWpPb29nI/duxYw621tXVG93769Gm5L+Z3ZRUnGgQIDQKEBgFCgwChQYDQIMDH+wvQtm3byv3mzZvlfvDgwabvPTg4WO79/f1N/+zFzIkGAUKDAKFBgNAgQGgQIDQIEBoEeI/2f6i3t7fc7969W+4rV65s+t6XLl0q96GhoXIfHx9v+t6LmRMNAoQGAUKDAKFBgNAgQGgQIDQI8G+b5sGmTZvK/cWLF+U+MTFR7o8fPy73sbGxhtvt27fLa3//9uvSDCcaBAgNAoQGAUKDAKFBgNAgQGgQ4Ptoc2T58uUNtzt37pTXrlixotxPnz5d7o8ePSp38pxoECA0CBAaBAgNAoQGAUKDAKFBgPdoc+TKlSsNt56envLaJ0+elPvw8HAzj8Q8cqJBgNAgQGgQIDQIEBoECA0CfLzfwKpVq8r98+fP5b569eqm7z3d12impqaa/tnMDycaBAgNAoQGAUKDAKFBgNAgQGgQsGT/bdPx48fL/ejRo+X+8uXLch8YGPjjZ/rXq1evyn3//v3l/vXr13LfunVrw+3ChQvltefOnSt3/jcnGgQIDQKEBgFCgwChQYDQIEBoELBo36N1dHSU++joaLl3dnbO5uPMqumefWJiotwPHDjQcPv582d57Uy+Z7eUOdEgQGgQIDQIEBoECA0ChAYBQoOARft3HTds2FDua9asCT3J7Ovu7p6zn93WVv9KnD17tty/fPnS9L3Hx8fL/dOnT+X+7t27pu8915xoECA0CBAaBAgNAoQGAUKDAKFBwKL9Ptp0pnvPtmzZsnLfu3dvue/bt6/h1t7eXl578uTJcp9PHz9+LPfnz5+Xe29vb8Ntur9H+fr163K/fPlyuY+MjJT7XHKiQYDQIEBoECA0CBAaBAgNAhbt12Sm8+HDhxld//79+3IfGhpquLW2tpbXzvWfdOvr62u4/f333+W1XV1d5X7+/Plyr/6c3ZkzZ8prd+3aVe49PT3l7uN9WOSEBgFCgwChQYDQIEBoECA0CFiyX5OBJCcaBAgNAoQGAUKDAKFBgNAgQGgQIDQIEBoECA0ChAYBQoMAoUGA0CBAaBAgNAgQGgQIDQKEBgFCgwChQYDQIEBoECA0CBAaBAgNAoQGAUKDAKFBgNAgQGgQIDQIEBoECA0ChAYBQoMAoUGA0CDgH3A/6eMhCpt6AAAAAElFTkSuQmCC\" y=\"-6.64\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m5c552a5c14\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.807857\" xlink:href=\"#m5c552a5c14\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(27.626607 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"69.636429\" xlink:href=\"#m5c552a5c14\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 5 -->\n      <defs>\n       <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n      </defs>\n      <g transform=\"translate(66.455179 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"108.465\" xlink:href=\"#m5c552a5c14\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 10 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(102.1025 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"147.293571\" xlink:href=\"#m5c552a5c14\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 15 -->\n      <g transform=\"translate(140.931071 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"186.122143\" xlink:href=\"#m5c552a5c14\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 20 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(179.759643 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"224.950714\" xlink:href=\"#m5c552a5c14\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 25 -->\n      <g transform=\"translate(218.588214 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m66cbb94591\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m66cbb94591\" y=\"11.082857\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0 -->\n      <g transform=\"translate(13.5625 14.882076)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m66cbb94591\" y=\"49.911429\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 5 -->\n      <g transform=\"translate(13.5625 53.710647)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m66cbb94591\" y=\"88.74\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 10 -->\n      <g transform=\"translate(7.2 92.539219)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m66cbb94591\" y=\"127.568571\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 15 -->\n      <g transform=\"translate(7.2 131.36779)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m66cbb94591\" y=\"166.397143\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 20 -->\n      <g transform=\"translate(7.2 170.196362)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m66cbb94591\" y=\"205.225714\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 25 -->\n      <g transform=\"translate(7.2 209.024933)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 26.925 224.64 \nL 26.925 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 244.365 224.64 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 26.925 7.2 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p001fb49d5a\">\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt \n",
    "plt.imshow(images[0],cmap='gray')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import fetch_openml\n",
    "# 这个数据集需要下一会，不过下载好了有缓存\n",
    "#　跟课堂上的数据是一样的。\n",
    "mnist_data = fetch_openml(\"mnist_784\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "{'data': array([[0., 0., 0., ..., 0., 0., 0.],\n        [0., 0., 0., ..., 0., 0., 0.],\n        [0., 0., 0., ..., 0., 0., 0.],\n        ...,\n        [0., 0., 0., ..., 0., 0., 0.],\n        [0., 0., 0., ..., 0., 0., 0.],\n        [0., 0., 0., ..., 0., 0., 0.]]),\n 'target': array(['5', '0', '4', ..., '4', '5', '6'], dtype=object),\n 'frame': None,\n 'feature_names': ['pixel1',\n  'pixel2',\n  'pixel3',\n  'pixel4',\n  'pixel5',\n  'pixel6',\n  'pixel7',\n  'pixel8',\n  'pixel9',\n  'pixel10',\n  'pixel11',\n  'pixel12',\n  'pixel13',\n  'pixel14',\n  'pixel15',\n  'pixel16',\n  'pixel17',\n  'pixel18',\n  'pixel19',\n  'pixel20',\n  'pixel21',\n  'pixel22',\n  'pixel23',\n  'pixel24',\n  'pixel25',\n  'pixel26',\n  'pixel27',\n  'pixel28',\n  'pixel29',\n  'pixel30',\n  'pixel31',\n  'pixel32',\n  'pixel33',\n  'pixel34',\n  'pixel35',\n  'pixel36',\n  'pixel37',\n  'pixel38',\n  'pixel39',\n  'pixel40',\n  'pixel41',\n  'pixel42',\n  'pixel43',\n  'pixel44',\n  'pixel45',\n  'pixel46',\n  'pixel47',\n  'pixel48',\n  'pixel49',\n  'pixel50',\n  'pixel51',\n  'pixel52',\n  'pixel53',\n  'pixel54',\n  'pixel55',\n  'pixel56',\n  'pixel57',\n  'pixel58',\n  'pixel59',\n  'pixel60',\n  'pixel61',\n  'pixel62',\n  'pixel63',\n  'pixel64',\n  'pixel65',\n  'pixel66',\n  'pixel67',\n  'pixel68',\n  'pixel69',\n  'pixel70',\n  'pixel71',\n  'pixel72',\n  'pixel73',\n  'pixel74',\n  'pixel75',\n  'pixel76',\n  'pixel77',\n  'pixel78',\n  'pixel79',\n  'pixel80',\n  'pixel81',\n  'pixel82',\n  'pixel83',\n  'pixel84',\n  'pixel85',\n  'pixel86',\n  'pixel87',\n  'pixel88',\n  'pixel89',\n  'pixel90',\n  'pixel91',\n  'pixel92',\n  'pixel93',\n  'pixel94',\n  'pixel95',\n  'pixel96',\n  'pixel97',\n  'pixel98',\n  'pixel99',\n  'pixel100',\n  'pixel101',\n  'pixel102',\n  'pixel103',\n  'pixel104',\n  'pixel105',\n  'pixel106',\n  'pixel107',\n  'pixel108',\n  'pixel109',\n  'pixel110',\n  'pixel111',\n  'pixel112',\n  'pixel113',\n  'pixel114',\n  'pixel115',\n  'pixel116',\n  'pixel117',\n  'pixel118',\n  'pixel119',\n  'pixel120',\n  'pixel121',\n  'pixel122',\n  'pixel123',\n  'pixel124',\n  'pixel125',\n  'pixel126',\n  'pixel127',\n  'pixel128',\n  'pixel129',\n  'pixel130',\n  'pixel131',\n  'pixel132',\n  'pixel133',\n  'pixel134',\n  'pixel135',\n  'pixel136',\n  'pixel137',\n  'pixel138',\n  'pixel139',\n  'pixel140',\n  'pixel141',\n  'pixel142',\n  'pixel143',\n  'pixel144',\n  'pixel145',\n  'pixel146',\n  'pixel147',\n  'pixel148',\n  'pixel149',\n  'pixel150',\n  'pixel151',\n  'pixel152',\n  'pixel153',\n  'pixel154',\n  'pixel155',\n  'pixel156',\n  'pixel157',\n  'pixel158',\n  'pixel159',\n  'pixel160',\n  'pixel161',\n  'pixel162',\n  'pixel163',\n  'pixel164',\n  'pixel165',\n  'pixel166',\n  'pixel167',\n  'pixel168',\n  'pixel169',\n  'pixel170',\n  'pixel171',\n  'pixel172',\n  'pixel173',\n  'pixel174',\n  'pixel175',\n  'pixel176',\n  'pixel177',\n  'pixel178',\n  'pixel179',\n  'pixel180',\n  'pixel181',\n  'pixel182',\n  'pixel183',\n  'pixel184',\n  'pixel185',\n  'pixel186',\n  'pixel187',\n  'pixel188',\n  'pixel189',\n  'pixel190',\n  'pixel191',\n  'pixel192',\n  'pixel193',\n  'pixel194',\n  'pixel195',\n  'pixel196',\n  'pixel197',\n  'pixel198',\n  'pixel199',\n  'pixel200',\n  'pixel201',\n  'pixel202',\n  'pixel203',\n  'pixel204',\n  'pixel205',\n  'pixel206',\n  'pixel207',\n  'pixel208',\n  'pixel209',\n  'pixel210',\n  'pixel211',\n  'pixel212',\n  'pixel213',\n  'pixel214',\n  'pixel215',\n  'pixel216',\n  'pixel217',\n  'pixel218',\n  'pixel219',\n  'pixel220',\n  'pixel221',\n  'pixel222',\n  'pixel223',\n  'pixel224',\n  'pixel225',\n  'pixel226',\n  'pixel227',\n  'pixel228',\n  'pixel229',\n  'pixel230',\n  'pixel231',\n  'pixel232',\n  'pixel233',\n  'pixel234',\n  'pixel235',\n  'pixel236',\n  'pixel237',\n  'pixel238',\n  'pixel239',\n  'pixel240',\n  'pixel241',\n  'pixel242',\n  'pixel243',\n  'pixel244',\n  'pixel245',\n  'pixel246',\n  'pixel247',\n  'pixel248',\n  'pixel249',\n  'pixel250',\n  'pixel251',\n  'pixel252',\n  'pixel253',\n  'pixel254',\n  'pixel255',\n  'pixel256',\n  'pixel257',\n  'pixel258',\n  'pixel259',\n  'pixel260',\n  'pixel261',\n  'pixel262',\n  'pixel263',\n  'pixel264',\n  'pixel265',\n  'pixel266',\n  'pixel267',\n  'pixel268',\n  'pixel269',\n  'pixel270',\n  'pixel271',\n  'pixel272',\n  'pixel273',\n  'pixel274',\n  'pixel275',\n  'pixel276',\n  'pixel277',\n  'pixel278',\n  'pixel279',\n  'pixel280',\n  'pixel281',\n  'pixel282',\n  'pixel283',\n  'pixel284',\n  'pixel285',\n  'pixel286',\n  'pixel287',\n  'pixel288',\n  'pixel289',\n  'pixel290',\n  'pixel291',\n  'pixel292',\n  'pixel293',\n  'pixel294',\n  'pixel295',\n  'pixel296',\n  'pixel297',\n  'pixel298',\n  'pixel299',\n  'pixel300',\n  'pixel301',\n  'pixel302',\n  'pixel303',\n  'pixel304',\n  'pixel305',\n  'pixel306',\n  'pixel307',\n  'pixel308',\n  'pixel309',\n  'pixel310',\n  'pixel311',\n  'pixel312',\n  'pixel313',\n  'pixel314',\n  'pixel315',\n  'pixel316',\n  'pixel317',\n  'pixel318',\n  'pixel319',\n  'pixel320',\n  'pixel321',\n  'pixel322',\n  'pixel323',\n  'pixel324',\n  'pixel325',\n  'pixel326',\n  'pixel327',\n  'pixel328',\n  'pixel329',\n  'pixel330',\n  'pixel331',\n  'pixel332',\n  'pixel333',\n  'pixel334',\n  'pixel335',\n  'pixel336',\n  'pixel337',\n  'pixel338',\n  'pixel339',\n  'pixel340',\n  'pixel341',\n  'pixel342',\n  'pixel343',\n  'pixel344',\n  'pixel345',\n  'pixel346',\n  'pixel347',\n  'pixel348',\n  'pixel349',\n  'pixel350',\n  'pixel351',\n  'pixel352',\n  'pixel353',\n  'pixel354',\n  'pixel355',\n  'pixel356',\n  'pixel357',\n  'pixel358',\n  'pixel359',\n  'pixel360',\n  'pixel361',\n  'pixel362',\n  'pixel363',\n  'pixel364',\n  'pixel365',\n  'pixel366',\n  'pixel367',\n  'pixel368',\n  'pixel369',\n  'pixel370',\n  'pixel371',\n  'pixel372',\n  'pixel373',\n  'pixel374',\n  'pixel375',\n  'pixel376',\n  'pixel377',\n  'pixel378',\n  'pixel379',\n  'pixel380',\n  'pixel381',\n  'pixel382',\n  'pixel383',\n  'pixel384',\n  'pixel385',\n  'pixel386',\n  'pixel387',\n  'pixel388',\n  'pixel389',\n  'pixel390',\n  'pixel391',\n  'pixel392',\n  'pixel393',\n  'pixel394',\n  'pixel395',\n  'pixel396',\n  'pixel397',\n  'pixel398',\n  'pixel399',\n  'pixel400',\n  'pixel401',\n  'pixel402',\n  'pixel403',\n  'pixel404',\n  'pixel405',\n  'pixel406',\n  'pixel407',\n  'pixel408',\n  'pixel409',\n  'pixel410',\n  'pixel411',\n  'pixel412',\n  'pixel413',\n  'pixel414',\n  'pixel415',\n  'pixel416',\n  'pixel417',\n  'pixel418',\n  'pixel419',\n  'pixel420',\n  'pixel421',\n  'pixel422',\n  'pixel423',\n  'pixel424',\n  'pixel425',\n  'pixel426',\n  'pixel427',\n  'pixel428',\n  'pixel429',\n  'pixel430',\n  'pixel431',\n  'pixel432',\n  'pixel433',\n  'pixel434',\n  'pixel435',\n  'pixel436',\n  'pixel437',\n  'pixel438',\n  'pixel439',\n  'pixel440',\n  'pixel441',\n  'pixel442',\n  'pixel443',\n  'pixel444',\n  'pixel445',\n  'pixel446',\n  'pixel447',\n  'pixel448',\n  'pixel449',\n  'pixel450',\n  'pixel451',\n  'pixel452',\n  'pixel453',\n  'pixel454',\n  'pixel455',\n  'pixel456',\n  'pixel457',\n  'pixel458',\n  'pixel459',\n  'pixel460',\n  'pixel461',\n  'pixel462',\n  'pixel463',\n  'pixel464',\n  'pixel465',\n  'pixel466',\n  'pixel467',\n  'pixel468',\n  'pixel469',\n  'pixel470',\n  'pixel471',\n  'pixel472',\n  'pixel473',\n  'pixel474',\n  'pixel475',\n  'pixel476',\n  'pixel477',\n  'pixel478',\n  'pixel479',\n  'pixel480',\n  'pixel481',\n  'pixel482',\n  'pixel483',\n  'pixel484',\n  'pixel485',\n  'pixel486',\n  'pixel487',\n  'pixel488',\n  'pixel489',\n  'pixel490',\n  'pixel491',\n  'pixel492',\n  'pixel493',\n  'pixel494',\n  'pixel495',\n  'pixel496',\n  'pixel497',\n  'pixel498',\n  'pixel499',\n  'pixel500',\n  'pixel501',\n  'pixel502',\n  'pixel503',\n  'pixel504',\n  'pixel505',\n  'pixel506',\n  'pixel507',\n  'pixel508',\n  'pixel509',\n  'pixel510',\n  'pixel511',\n  'pixel512',\n  'pixel513',\n  'pixel514',\n  'pixel515',\n  'pixel516',\n  'pixel517',\n  'pixel518',\n  'pixel519',\n  'pixel520',\n  'pixel521',\n  'pixel522',\n  'pixel523',\n  'pixel524',\n  'pixel525',\n  'pixel526',\n  'pixel527',\n  'pixel528',\n  'pixel529',\n  'pixel530',\n  'pixel531',\n  'pixel532',\n  'pixel533',\n  'pixel534',\n  'pixel535',\n  'pixel536',\n  'pixel537',\n  'pixel538',\n  'pixel539',\n  'pixel540',\n  'pixel541',\n  'pixel542',\n  'pixel543',\n  'pixel544',\n  'pixel545',\n  'pixel546',\n  'pixel547',\n  'pixel548',\n  'pixel549',\n  'pixel550',\n  'pixel551',\n  'pixel552',\n  'pixel553',\n  'pixel554',\n  'pixel555',\n  'pixel556',\n  'pixel557',\n  'pixel558',\n  'pixel559',\n  'pixel560',\n  'pixel561',\n  'pixel562',\n  'pixel563',\n  'pixel564',\n  'pixel565',\n  'pixel566',\n  'pixel567',\n  'pixel568',\n  'pixel569',\n  'pixel570',\n  'pixel571',\n  'pixel572',\n  'pixel573',\n  'pixel574',\n  'pixel575',\n  'pixel576',\n  'pixel577',\n  'pixel578',\n  'pixel579',\n  'pixel580',\n  'pixel581',\n  'pixel582',\n  'pixel583',\n  'pixel584',\n  'pixel585',\n  'pixel586',\n  'pixel587',\n  'pixel588',\n  'pixel589',\n  'pixel590',\n  'pixel591',\n  'pixel592',\n  'pixel593',\n  'pixel594',\n  'pixel595',\n  'pixel596',\n  'pixel597',\n  'pixel598',\n  'pixel599',\n  'pixel600',\n  'pixel601',\n  'pixel602',\n  'pixel603',\n  'pixel604',\n  'pixel605',\n  'pixel606',\n  'pixel607',\n  'pixel608',\n  'pixel609',\n  'pixel610',\n  'pixel611',\n  'pixel612',\n  'pixel613',\n  'pixel614',\n  'pixel615',\n  'pixel616',\n  'pixel617',\n  'pixel618',\n  'pixel619',\n  'pixel620',\n  'pixel621',\n  'pixel622',\n  'pixel623',\n  'pixel624',\n  'pixel625',\n  'pixel626',\n  'pixel627',\n  'pixel628',\n  'pixel629',\n  'pixel630',\n  'pixel631',\n  'pixel632',\n  'pixel633',\n  'pixel634',\n  'pixel635',\n  'pixel636',\n  'pixel637',\n  'pixel638',\n  'pixel639',\n  'pixel640',\n  'pixel641',\n  'pixel642',\n  'pixel643',\n  'pixel644',\n  'pixel645',\n  'pixel646',\n  'pixel647',\n  'pixel648',\n  'pixel649',\n  'pixel650',\n  'pixel651',\n  'pixel652',\n  'pixel653',\n  'pixel654',\n  'pixel655',\n  'pixel656',\n  'pixel657',\n  'pixel658',\n  'pixel659',\n  'pixel660',\n  'pixel661',\n  'pixel662',\n  'pixel663',\n  'pixel664',\n  'pixel665',\n  'pixel666',\n  'pixel667',\n  'pixel668',\n  'pixel669',\n  'pixel670',\n  'pixel671',\n  'pixel672',\n  'pixel673',\n  'pixel674',\n  'pixel675',\n  'pixel676',\n  'pixel677',\n  'pixel678',\n  'pixel679',\n  'pixel680',\n  'pixel681',\n  'pixel682',\n  'pixel683',\n  'pixel684',\n  'pixel685',\n  'pixel686',\n  'pixel687',\n  'pixel688',\n  'pixel689',\n  'pixel690',\n  'pixel691',\n  'pixel692',\n  'pixel693',\n  'pixel694',\n  'pixel695',\n  'pixel696',\n  'pixel697',\n  'pixel698',\n  'pixel699',\n  'pixel700',\n  'pixel701',\n  'pixel702',\n  'pixel703',\n  'pixel704',\n  'pixel705',\n  'pixel706',\n  'pixel707',\n  'pixel708',\n  'pixel709',\n  'pixel710',\n  'pixel711',\n  'pixel712',\n  'pixel713',\n  'pixel714',\n  'pixel715',\n  'pixel716',\n  'pixel717',\n  'pixel718',\n  'pixel719',\n  'pixel720',\n  'pixel721',\n  'pixel722',\n  'pixel723',\n  'pixel724',\n  'pixel725',\n  'pixel726',\n  'pixel727',\n  'pixel728',\n  'pixel729',\n  'pixel730',\n  'pixel731',\n  'pixel732',\n  'pixel733',\n  'pixel734',\n  'pixel735',\n  'pixel736',\n  'pixel737',\n  'pixel738',\n  'pixel739',\n  'pixel740',\n  'pixel741',\n  'pixel742',\n  'pixel743',\n  'pixel744',\n  'pixel745',\n  'pixel746',\n  'pixel747',\n  'pixel748',\n  'pixel749',\n  'pixel750',\n  'pixel751',\n  'pixel752',\n  'pixel753',\n  'pixel754',\n  'pixel755',\n  'pixel756',\n  'pixel757',\n  'pixel758',\n  'pixel759',\n  'pixel760',\n  'pixel761',\n  'pixel762',\n  'pixel763',\n  'pixel764',\n  'pixel765',\n  'pixel766',\n  'pixel767',\n  'pixel768',\n  'pixel769',\n  'pixel770',\n  'pixel771',\n  'pixel772',\n  'pixel773',\n  'pixel774',\n  'pixel775',\n  'pixel776',\n  'pixel777',\n  'pixel778',\n  'pixel779',\n  'pixel780',\n  'pixel781',\n  'pixel782',\n  'pixel783',\n  'pixel784'],\n 'target_names': ['class'],\n 'DESCR': \"**Author**: Yann LeCun, Corinna Cortes, Christopher J.C. Burges  \\n**Source**: [MNIST Website](http://yann.lecun.com/exdb/mnist/) - Date unknown  \\n**Please cite**:  \\n\\nThe MNIST database of handwritten digits with 784 features, raw data available at: http://yann.lecun.com/exdb/mnist/. It can be split in a training set of the first 60,000 examples, and a test set of 10,000 examples  \\n\\nIt is a subset of a larger set available from NIST. The digits have been size-normalized and centered in a fixed-size image. It is a good database for people who want to try learning techniques and pattern recognition methods on real-world data while spending minimal efforts on preprocessing and formatting. The original black and white (bilevel) images from NIST were size normalized to fit in a 20x20 pixel box while preserving their aspect ratio. The resulting images contain grey levels as a result of the anti-aliasing technique used by the normalization algorithm. the images were centered in a 28x28 image by computing the center of mass of the pixels, and translating the image so as to position this point at the center of the 28x28 field.  \\n\\nWith some classification methods (particularly template-based methods, such as SVM and K-nearest neighbors), the error rate improves when the digits are centered by bounding box rather than center of mass. If you do this kind of pre-processing, you should report it in your publications. The MNIST database was constructed from NIST's NIST originally designated SD-3 as their training set and SD-1 as their test set. However, SD-3 is much cleaner and easier to recognize than SD-1. The reason for this can be found on the fact that SD-3 was collected among Census Bureau employees, while SD-1 was collected among high-school students. Drawing sensible conclusions from learning experiments requires that the result be independent of the choice of training set and test among the complete set of samples. Therefore it was necessary to build a new database by mixing NIST's datasets.  \\n\\nThe MNIST training set is composed of 30,000 patterns from SD-3 and 30,000 patterns from SD-1. Our test set was composed of 5,000 patterns from SD-3 and 5,000 patterns from SD-1. The 60,000 pattern training set contained examples from approximately 250 writers. We made sure that the sets of writers of the training set and test set were disjoint. SD-1 contains 58,527 digit images written by 500 different writers. In contrast to SD-3, where blocks of data from each writer appeared in sequence, the data in SD-1 is scrambled. Writer identities for SD-1 is available and we used this information to unscramble the writers. We then split SD-1 in two: characters written by the first 250 writers went into our new training set. The remaining 250 writers were placed in our test set. Thus we had two sets with nearly 30,000 examples each. The new training set was completed with enough examples from SD-3, starting at pattern # 0, to make a full set of 60,000 training patterns. Similarly, the new test set was completed with SD-3 examples starting at pattern # 35,000 to make a full set with 60,000 test patterns. Only a subset of 10,000 test images (5,000 from SD-1 and 5,000 from SD-3) is available on this site. The full 60,000 sample training set is available.\\n\\nDownloaded from openml.org.\",\n 'details': {'id': '554',\n  'name': 'mnist_784',\n  'version': '1',\n  'format': 'ARFF',\n  'upload_date': '2014-09-29T03:28:38',\n  'licence': 'Public',\n  'url': 'https://www.openml.org/data/v1/download/52667/mnist_784.arff',\n  'file_id': '52667',\n  'default_target_attribute': 'class',\n  'tag': ['AzurePilot',\n   'OpenML-CC18',\n   'OpenML100',\n   'study_1',\n   'study_123',\n   'study_41',\n   'study_99',\n   'vision'],\n  'visibility': 'public',\n  'status': 'active',\n  'processing_date': '2018-10-03 21:23:30',\n  'md5_checksum': '0298d579eb1b86163de7723944c7e495'},\n 'categories': {},\n 'url': 'https://www.openml.org/d/554'}"
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mnist_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "X =  mnist_data.data\n",
    "y =  np.array([int(i) for i in mnist_data.target])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(70000, 784)"
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 251.565 248.518125\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 251.565 248.518125 \nL 251.565 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \nL 244.365 7.2 \nL 26.925 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p8e0768aa4b)\">\n    <image height=\"218\" id=\"image9996c70a18\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\n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\" y=\"-6.64\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"mefd3129460\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.807857\" xlink:href=\"#mefd3129460\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(27.626607 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"69.636429\" xlink:href=\"#mefd3129460\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 5 -->\n      <defs>\n       <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n      </defs>\n      <g transform=\"translate(66.455179 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"108.465\" xlink:href=\"#mefd3129460\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 10 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(102.1025 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"147.293571\" xlink:href=\"#mefd3129460\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 15 -->\n      <g transform=\"translate(140.931071 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"186.122143\" xlink:href=\"#mefd3129460\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 20 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(179.759643 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"224.950714\" xlink:href=\"#mefd3129460\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 25 -->\n      <g transform=\"translate(218.588214 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"ma2e0407fe3\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#ma2e0407fe3\" y=\"11.082857\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0 -->\n      <g transform=\"translate(13.5625 14.882076)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#ma2e0407fe3\" y=\"49.911429\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 5 -->\n      <g transform=\"translate(13.5625 53.710647)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#ma2e0407fe3\" y=\"88.74\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 10 -->\n      <g transform=\"translate(7.2 92.539219)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#ma2e0407fe3\" y=\"127.568571\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 15 -->\n      <g transform=\"translate(7.2 131.36779)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#ma2e0407fe3\" y=\"166.397143\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 20 -->\n      <g transform=\"translate(7.2 170.196362)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#ma2e0407fe3\" y=\"205.225714\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 25 -->\n      <g transform=\"translate(7.2 209.024933)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 26.925 224.64 \nL 26.925 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 244.365 224.64 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 26.925 7.2 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p8e0768aa4b\">\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def show_img(img):\n",
    "    plt.imshow(img.reshape(28,28), cmap=matplotlib.cm.binary)\n",
    "show_img(X[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 这个方法已经做了乱序，并且stratify已经做了分层抽样。\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, stratify = y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "2"
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 251.565 248.518125\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 251.565 248.518125 \nL 251.565 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \nL 244.365 7.2 \nL 26.925 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p786fbb3424)\">\n    <image height=\"218\" id=\"image0e5cb1e365\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\n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\" y=\"-6.64\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m5d6c19b983\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.807857\" xlink:href=\"#m5d6c19b983\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(27.626607 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"69.636429\" xlink:href=\"#m5d6c19b983\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 5 -->\n      <defs>\n       <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n      </defs>\n      <g transform=\"translate(66.455179 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"108.465\" xlink:href=\"#m5d6c19b983\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 10 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(102.1025 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"147.293571\" xlink:href=\"#m5d6c19b983\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 15 -->\n      <g transform=\"translate(140.931071 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"186.122143\" xlink:href=\"#m5d6c19b983\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 20 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(179.759643 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"224.950714\" xlink:href=\"#m5d6c19b983\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 25 -->\n      <g transform=\"translate(218.588214 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m9b50da2e47\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m9b50da2e47\" y=\"11.082857\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0 -->\n      <g transform=\"translate(13.5625 14.882076)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m9b50da2e47\" y=\"49.911429\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 5 -->\n      <g transform=\"translate(13.5625 53.710647)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m9b50da2e47\" y=\"88.74\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 10 -->\n      <g transform=\"translate(7.2 92.539219)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m9b50da2e47\" y=\"127.568571\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 15 -->\n      <g transform=\"translate(7.2 131.36779)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m9b50da2e47\" y=\"166.397143\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 20 -->\n      <g transform=\"translate(7.2 170.196362)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m9b50da2e47\" y=\"205.225714\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 25 -->\n      <g transform=\"translate(7.2 209.024933)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 26.925 224.64 \nL 26.925 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 244.365 224.64 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 26.925 7.2 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p786fbb3424\">\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_img(X_train[3000])\n",
    "y_train[3000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([6, 1, 0, ..., 2, 0, 6])"
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([False, False, False, ..., False, False, False])"
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_is_5 = y_train == 5\n",
    "y_train_is_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([False, False, False, ..., False, False, False])"
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_is_5 = y_test == 5\n",
    "y_test_is_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "SGDClassifier(alpha=0.0001, average=False, class_weight=None,\n              early_stopping=False, epsilon=0.1, eta0=0.0, fit_intercept=True,\n              l1_ratio=0.15, learning_rate='optimal', loss='hinge',\n              max_iter=1000, n_iter_no_change=5, n_jobs=None, penalty='l2',\n              power_t=0.5, random_state=None, shuffle=True, tol=0.001,\n              validation_fraction=0.1, verbose=0, warm_start=False)"
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import SGDClassifier\n",
    "\n",
    "sgd_model = SGDClassifier()\n",
    "sgd_model.fit(X_train, y_train_is_5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([0.94834286, 0.96657143, 0.89508571])"
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import cross_val_score\n",
    "\n",
    "cross_val_score(sgd_model, X_train, y_train_is_5, cv = 3, scoring='accuracy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.base import BaseEstimator\n",
    "import numpy as np\n",
    "class Never5(BaseEstimator):\n",
    "    def fit (self, X, y =None):\n",
    "        pass \n",
    "    def predict(self, X):\n",
    "        return np.zeros((len(X),1), dtype = bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([0.91057143, 0.90771429, 0.91171429, 0.91266667, 0.90638095])"
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(Never5(), X_train, y_train_is_5, scoring='accuracy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import cross_val_predict\n",
    "\n",
    "y_train_predict = cross_val_predict(sgd_model, X_train, y_train_is_5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([[45367,  2398],\n       [  969,  3766]])"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix \n",
    "confusion_matrix(y_train_is_5, y_train_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(0.6109669046073978, 0.7953537486800423)"
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_score, recall_score\n",
    "\n",
    "(precision_score(y_train_is_5, y_train_predict), recall_score(y_train_is_5, y_train_predict))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "0.691072575465639"
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "f1_score(y_train_is_5, y_train_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_scores = cross_val_predict(sgd_model, X_train, y_train_is_5, cv = 3, method = 'decision_function')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([ -2359.79345523, -11065.65164097, -22429.80010816, ...,\n       -24961.97288019, -18127.42712473, -30175.14453592])"
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(0, 1, 0, 1)"
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"252.317344pt\" version=\"1.1\" viewBox=\"0 0 380.054687 252.317344\" width=\"380.054687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 252.317344 \nL 380.054687 252.317344 \nL 380.054687 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 30.103125 228.439219 \nL 364.903125 228.439219 \nL 364.903125 10.999219 \nL 30.103125 10.999219 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"md9b8970aee\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#md9b8970aee\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0.0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       <path d=\"M 10.6875 12.40625 \nL 21 12.40625 \nL 21 0 \nL 10.6875 0 \nz\n\" id=\"DejaVuSans-46\"/>\n      </defs>\n      <g transform=\"translate(22.151563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"97.063125\" xlink:href=\"#md9b8970aee\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 0.2 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(89.111563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"164.023125\" xlink:href=\"#md9b8970aee\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 0.4 -->\n      <defs>\n       <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n      </defs>\n      <g transform=\"translate(156.071563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"230.983125\" xlink:href=\"#md9b8970aee\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 0.6 -->\n      <defs>\n       <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n      </defs>\n      <g transform=\"translate(223.031563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"297.943125\" xlink:href=\"#md9b8970aee\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 0.8 -->\n      <defs>\n       <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n      </defs>\n      <g transform=\"translate(289.991563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"364.903125\" xlink:href=\"#md9b8970aee\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 1.0 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(356.951563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m853413087c\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m853413087c\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0.0 -->\n      <g transform=\"translate(7.2 232.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m853413087c\" y=\"184.951219\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 0.2 -->\n      <g transform=\"translate(7.2 188.750437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m853413087c\" y=\"141.463219\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 0.4 -->\n      <g transform=\"translate(7.2 145.262437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m853413087c\" y=\"97.975219\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 0.6 -->\n      <g transform=\"translate(7.2 101.774437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m853413087c\" y=\"54.487219\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 0.8 -->\n      <g transform=\"translate(7.2 58.286437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m853413087c\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 1.0 -->\n      <g transform=\"translate(7.2 14.798437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"line2d_13\">\n    <path clip-path=\"url(#p42da8c7af7)\" d=\"M 364.903125 208.826334 \nL 364.832418 208.830102 \nL 364.832418 208.718905 \nL 364.76171 208.611774 \nL 364.549588 208.5188 \nL 364.549588 208.512239 \nL 364.47888 208.249276 \nL 364.337465 208.176254 \nL 364.337465 208.145849 \nL 364.266758 208.075359 \nL 364.125343 208.077117 \nL 364.125343 207.972035 \nL 364.054635 207.910101 \nL 363.983928 207.914037 \nL 363.983928 207.803068 \nL 363.91322 207.747553 \nL 363.701098 207.676161 \nL 363.701098 207.648389 \nL 363.63039 207.274478 \nL 363.559683 207.278529 \nL 363.559683 207.167473 \nL 363.488975 206.967542 \nL 363.418268 206.971647 \nL 363.418268 206.86047 \nL 363.34756 206.345983 \nL 363.276853 206.350195 \nL 363.276853 206.239156 \nL 363.206145 205.919877 \nL 363.06473 205.828532 \nL 363.06473 205.817542 \nL 362.994023 205.310858 \nL 362.852608 205.258885 \nL 362.852608 205.208365 \nL 362.7819 204.888766 \nL 362.711193 204.89323 \nL 362.711193 204.782133 \nL 362.640485 204.509879 \nL 362.49907 204.456078 \nL 362.49907 204.408152 \nL 362.428363 203.306592 \nL 362.357655 203.311321 \nL 362.357655 203.200216 \nL 362.286948 201.991075 \nL 362.145533 201.948837 \nL 362.145533 201.889603 \nL 362.074825 201.496652 \nL 361.93341 201.406107 \nL 361.93341 201.39536 \nL 361.862703 201.337918 \nL 361.721288 201.307668 \nL 361.721288 201.236743 \nL 361.65058 200.922522 \nL 361.579873 200.927648 \nL 361.579873 200.816567 \nL 361.509165 200.443139 \nL 361.438458 200.448344 \nL 361.438458 200.337177 \nL 361.36775 200.337748 \nL 361.36775 199.951107 \nL 361.297043 199.956391 \nL 361.297043 199.845239 \nL 361.226335 199.601169 \nL 361.155628 199.606511 \nL 361.155628 199.495849 \nL 361.08492 198.660499 \nL 361.014213 198.66599 \nL 361.014213 198.554948 \nL 360.943505 198.067204 \nL 360.731383 197.99853 \nL 360.731383 197.97299 \nL 360.660675 197.243859 \nL 360.589968 197.249574 \nL 360.589968 197.138145 \nL 360.51926 195.09723 \nL 360.377845 195.020482 \nL 360.377845 194.998476 \nL 360.307138 194.7829 \nL 360.23643 194.788991 \nL 360.23643 194.678208 \nL 360.165723 194.590887 \nL 360.095015 194.59701 \nL 360.095015 194.486044 \nL 360.024308 194.027014 \nL 359.882893 194.038264 \nL 359.882893 193.928222 \nL 359.812185 193.413562 \nL 359.67077 193.368008 \nL 359.67077 193.315745 \nL 359.600063 192.151198 \nL 359.529355 192.157686 \nL 359.529355 192.046901 \nL 359.458648 190.72144 \nL 359.38794 190.728133 \nL 359.38794 190.616857 \nL 359.317233 189.94197 \nL 359.246525 189.948775 \nL 359.246525 189.837213 \nL 359.175818 189.107501 \nL 359.10511 189.114424 \nL 359.10511 189.004064 \nL 359.034403 188.758892 \nL 358.963695 188.765866 \nL 358.963695 188.655055 \nL 358.892988 188.352948 \nL 358.82228 188.35998 \nL 358.82228 188.248436 \nL 358.751573 187.243233 \nL 358.610158 187.192026 \nL 358.610158 187.146505 \nL 358.53945 186.90242 \nL 358.468743 186.909654 \nL 358.468743 186.798338 \nL 358.398035 185.704122 \nL 358.327328 185.711518 \nL 358.327328 185.600899 \nL 358.25662 185.50444 \nL 358.185913 185.511865 \nL 358.185913 185.400161 \nL 358.115205 184.934338 \nL 358.044498 184.94184 \nL 358.044498 184.830868 \nL 358.044498 184.70416 \nL 357.97379 184.7079 \nL 357.903083 184.715435 \nL 357.903083 184.60516 \nL 357.832375 183.913732 \nL 357.761668 183.921371 \nL 357.761668 183.810954 \nL 357.69096 183.812678 \nL 357.69096 183.582174 \nL 357.620253 183.589859 \nL 357.620253 183.479747 \nL 357.549545 182.914347 \nL 357.478838 182.92212 \nL 357.478838 182.81072 \nL 357.40813 182.095936 \nL 357.266715 182.036909 \nL 357.266715 182.000498 \nL 357.196008 180.235 \nL 357.1253 180.24311 \nL 357.1253 180.131985 \nL 357.054593 179.208324 \nL 356.983885 179.216561 \nL 356.983885 179.105438 \nL 356.913178 178.369087 \nL 356.84247 178.377426 \nL 356.84247 178.267439 \nL 356.771763 177.741626 \nL 356.55964 177.702852 \nL 356.55964 177.656656 \nL 356.488933 176.39343 \nL 356.418225 176.402007 \nL 356.418225 176.291134 \nL 356.347518 175.980753 \nL 356.27681 175.98938 \nL 356.27681 175.879445 \nL 356.206103 175.766637 \nL 356.064688 175.673077 \nL 355.99398 175.67619 \nL 355.99398 175.651178 \nL 355.923273 175.659851 \nL 355.923273 175.548408 \nL 355.852565 175.214306 \nL 355.781858 175.223032 \nL 355.781858 175.112525 \nL 355.71115 174.691972 \nL 355.640443 174.700759 \nL 355.640443 174.590918 \nL 355.569735 174.235248 \nL 355.499028 174.244089 \nL 355.499028 174.132322 \nL 355.42832 173.850828 \nL 355.357613 173.859714 \nL 355.357613 173.749296 \nL 355.286905 173.496822 \nL 355.216198 173.505751 \nL 355.216198 173.393845 \nL 355.14549 173.217315 \nL 355.074783 173.226277 \nL 355.074783 173.116243 \nL 355.004075 171.573152 \nL 354.86266 171.529884 \nL 354.86266 171.481199 \nL 354.791953 171.157108 \nL 354.721245 171.166296 \nL 354.721245 171.054358 \nL 354.650538 170.547711 \nL 354.57983 170.556966 \nL 354.57983 170.445951 \nL 354.509123 169.948675 \nL 354.438415 169.957994 \nL 354.438415 169.848061 \nL 354.367708 169.417032 \nL 354.297 169.426409 \nL 354.297 169.314417 \nL 354.226293 168.358148 \nL 354.155585 168.367634 \nL 354.155585 168.258802 \nL 354.084878 167.699715 \nL 354.01417 167.709269 \nL 354.01417 167.597987 \nL 353.943463 166.713968 \nL 353.802048 166.729448 \nL 353.802048 166.622146 \nL 353.802048 166.371609 \nL 353.73134 166.381298 \nL 353.660633 166.390987 \nL 353.660633 166.282457 \nL 353.589925 165.716142 \nL 353.44851 165.69213 \nL 353.44851 165.624745 \nL 353.377803 165.203058 \nL 353.236388 165.174381 \nL 353.236388 165.113906 \nL 353.16568 164.285573 \nL 352.953558 164.24479 \nL 352.953558 164.203256 \nL 352.88285 163.765411 \nL 352.812143 163.775365 \nL 352.812143 163.66563 \nL 352.741435 162.866638 \nL 352.670728 162.876675 \nL 352.670728 162.768164 \nL 352.60002 161.704555 \nL 352.529313 161.714697 \nL 352.529313 161.606757 \nL 352.458605 160.387529 \nL 352.31719 160.380006 \nL 352.31719 160.300443 \nL 352.246483 159.104348 \nL 352.175775 159.114714 \nL 352.175775 159.002932 \nL 352.105068 157.955785 \nL 352.03436 157.966246 \nL 352.03436 157.855708 \nL 351.963653 157.68962 \nL 351.892945 157.700107 \nL 351.892945 157.588682 \nL 351.822238 156.876687 \nL 351.680823 156.861546 \nL 351.680823 156.788942 \nL 351.610115 156.512863 \nL 351.468701 156.486922 \nL 351.468701 156.424003 \nL 351.397993 155.906011 \nL 351.327286 155.916649 \nL 351.327286 155.804666 \nL 351.256578 155.261056 \nL 351.115163 155.277016 \nL 351.115163 155.173848 \nL 351.044456 154.493002 \nL 350.903041 154.481255 \nL 350.903041 154.40355 \nL 350.832333 154.085066 \nL 350.690918 154.078609 \nL 350.690918 153.994383 \nL 350.620211 153.313036 \nL 350.549503 153.323884 \nL 350.549503 153.214938 \nL 350.478796 153.05891 \nL 350.337381 152.970925 \nL 350.266673 152.510452 \nL 350.195966 152.521366 \nL 350.195966 152.409955 \nL 350.125258 151.75748 \nL 350.054551 151.768448 \nL 350.054551 151.660756 \nL 349.983843 151.06793 \nL 349.913136 151.078948 \nL 349.913136 150.96926 \nL 349.842428 149.671 \nL 349.771721 149.682109 \nL 349.771721 149.574699 \nL 349.701013 148.741781 \nL 349.630306 148.752952 \nL 349.630306 148.642941 \nL 349.559598 147.683451 \nL 349.488891 147.694687 \nL 349.488891 147.58834 \nL 349.418183 147.151219 \nL 349.347476 147.162491 \nL 349.347476 147.054688 \nL 349.276768 146.392562 \nL 349.206061 146.40388 \nL 349.206061 146.294005 \nL 349.135353 145.994741 \nL 348.993938 145.968913 \nL 348.993938 145.906446 \nL 348.923231 145.611056 \nL 348.781816 145.598806 \nL 348.781816 145.521706 \nL 348.711108 145.413658 \nL 348.569693 145.330787 \nL 348.498986 145.179668 \nL 348.428278 145.191079 \nL 348.428278 145.08475 \nL 348.357571 144.889839 \nL 348.286863 144.901269 \nL 348.286863 144.794151 \nL 348.216156 144.439342 \nL 348.074741 144.382855 \nL 348.074741 144.353942 \nL 348.004033 143.987747 \nL 347.862618 143.974238 \nL 347.862618 143.901165 \nL 347.791911 143.560164 \nL 347.721203 143.571682 \nL 347.721203 143.460927 \nL 347.650496 143.391053 \nL 347.579788 143.402584 \nL 347.579788 143.291338 \nL 347.509081 142.372015 \nL 347.367666 142.387598 \nL 347.367666 142.288819 \nL 347.296958 142.010383 \nL 347.084836 141.999251 \nL 347.084836 141.937886 \nL 347.084836 141.837982 \nL 347.014128 141.841913 \nL 346.943421 141.85354 \nL 346.943421 141.745684 \nL 346.872713 141.571803 \nL 346.802006 141.583448 \nL 346.802006 141.474868 \nL 346.731298 139.492812 \nL 346.589883 139.426832 \nL 346.589883 139.410547 \nL 346.519176 139.128159 \nL 346.448468 139.13992 \nL 346.448468 139.03323 \nL 346.448468 138.777785 \nL 346.377761 138.781298 \nL 346.307053 138.793079 \nL 346.307053 138.68551 \nL 346.236346 138.689012 \nL 346.236346 138.272808 \nL 346.024223 138.207778 \nL 346.024223 138.199397 \nL 346.024223 137.744491 \nL 345.953516 137.756325 \nL 345.812101 137.720699 \nL 345.812101 137.66981 \nL 345.741393 137.161039 \nL 345.670686 137.172904 \nL 345.670686 137.061185 \nL 345.599978 136.814204 \nL 345.529271 136.826087 \nL 345.529271 136.713466 \nL 345.458563 136.71668 \nL 345.458563 136.673284 \nL 345.317148 136.697072 \nL 345.317148 136.592761 \nL 345.246441 135.947323 \nL 345.175733 135.959249 \nL 345.175733 135.853204 \nL 345.105026 134.989942 \nL 345.034318 135.001905 \nL 345.034318 134.893603 \nL 344.963611 134.360291 \nL 344.751488 134.295611 \nL 344.751488 134.28645 \nL 344.680781 134.124062 \nL 344.539366 134.102079 \nL 344.539366 134.03761 \nL 344.468658 133.790869 \nL 344.397951 133.802892 \nL 344.397951 133.691567 \nL 344.327243 132.84134 \nL 344.256536 132.853395 \nL 344.256536 132.74925 \nL 344.185828 130.985028 \nL 344.115121 130.997136 \nL 344.115121 130.888856 \nL 344.044413 130.723267 \nL 343.973706 130.735386 \nL 343.973706 130.626475 \nL 343.902998 130.22052 \nL 343.832291 130.232655 \nL 343.832291 130.122569 \nL 343.761583 129.020146 \nL 343.690876 129.032312 \nL 343.690876 128.929736 \nL 343.620168 128.715495 \nL 343.549461 128.727672 \nL 343.549461 128.624419 \nL 343.478753 128.179743 \nL 343.408046 128.191935 \nL 343.408046 128.087522 \nL 343.337338 127.532116 \nL 343.266631 127.544325 \nL 343.266631 127.43851 \nL 343.195923 126.703767 \nL 343.125216 126.715994 \nL 343.125216 126.608384 \nL 343.054508 126.328933 \nL 342.983801 126.341171 \nL 342.983801 126.232718 \nL 342.913093 125.633345 \nL 342.842386 125.645598 \nL 342.842386 125.535611 \nL 342.842386 125.425388 \nL 342.771678 125.437646 \nL 342.700971 125.449907 \nL 342.700971 125.33945 \nL 342.630263 124.290454 \nL 342.559556 124.302732 \nL 342.559556 124.201059 \nL 342.488848 123.827445 \nL 342.418141 123.839733 \nL 342.418141 123.737106 \nL 342.347433 123.440308 \nL 342.276726 123.452605 \nL 342.276726 123.349169 \nL 342.206018 123.246303 \nL 342.135311 123.258607 \nL 342.135311 123.154742 \nL 342.064603 122.469344 \nL 341.993896 122.481658 \nL 341.993896 122.376204 \nL 341.923188 121.763237 \nL 341.781773 121.787887 \nL 341.781773 121.680974 \nL 341.711066 121.275488 \nL 341.569651 121.288173 \nL 341.569651 121.192192 \nL 341.498943 120.539978 \nL 341.428236 120.552322 \nL 341.428236 120.442792 \nL 341.357528 119.719219 \nL 341.286821 119.731569 \nL 341.286821 119.620315 \nL 341.216113 119.22278 \nL 341.145406 119.235136 \nL 341.145406 119.122812 \nL 341.074698 118.570064 \nL 341.003991 118.582425 \nL 341.003991 118.481349 \nL 340.933283 118.2275 \nL 340.862576 118.239865 \nL 340.862576 118.138111 \nL 340.791868 117.226163 \nL 340.721161 117.23853 \nL 340.721161 117.13487 \nL 340.650453 116.71759 \nL 340.438331 116.689317 \nL 340.438331 116.650047 \nL 340.367623 116.043563 \nL 340.296916 116.055939 \nL 340.296916 115.949917 \nL 340.226208 115.388977 \nL 340.155501 115.401353 \nL 340.155501 115.294043 \nL 340.084793 115.239247 \nL 340.014086 115.251627 \nL 340.014086 115.143983 \nL 339.943378 114.805101 \nL 339.872671 114.817482 \nL 339.872671 114.708961 \nL 339.801963 114.230417 \nL 339.731256 114.242798 \nL 339.731256 114.133125 \nL 339.660548 113.649357 \nL 339.519133 113.632578 \nL 339.519133 113.563275 \nL 339.448426 113.353325 \nL 339.377718 113.365709 \nL 339.377718 113.254217 \nL 339.307011 112.663604 \nL 339.094888 112.700753 \nL 339.094888 112.601988 \nL 339.024181 112.10376 \nL 338.882766 112.028715 \nL 338.812058 111.496248 \nL 338.670643 111.448939 \nL 338.670643 111.420084 \nL 338.599936 111.172133 \nL 338.458521 111.12438 \nL 338.458521 111.095345 \nL 338.387813 110.904084 \nL 338.317106 110.916471 \nL 338.317106 110.814379 \nL 338.246398 110.724496 \nL 338.104984 110.734653 \nL 338.104984 110.646825 \nL 338.034276 110.46847 \nL 337.963569 110.480863 \nL 337.963569 110.377894 \nL 337.892861 109.185556 \nL 337.822154 109.197928 \nL 337.822154 109.092658 \nL 337.751446 108.651749 \nL 337.610031 108.585409 \nL 337.610031 108.570216 \nL 337.539324 108.35423 \nL 337.397909 108.378967 \nL 337.397909 108.272098 \nL 337.327201 107.901224 \nL 337.185786 107.864408 \nL 337.185786 107.818205 \nL 337.115079 107.102054 \nL 337.044371 107.114406 \nL 337.044371 107.005147 \nL 336.973664 106.609939 \nL 336.902956 106.622284 \nL 336.902956 106.512085 \nL 336.832249 105.859008 \nL 336.761541 105.871337 \nL 336.761541 105.759723 \nL 336.690834 105.596243 \nL 336.620126 105.60857 \nL 336.620126 105.496425 \nL 336.549419 105.31602 \nL 336.478711 105.328345 \nL 336.478711 105.215635 \nL 336.408004 104.807498 \nL 336.266589 104.832129 \nL 336.266589 104.734686 \nL 336.195881 104.486393 \nL 336.125174 104.498705 \nL 336.125174 104.40069 \nL 336.054466 104.200096 \nL 335.842344 104.13851 \nL 335.771636 103.936819 \nL 335.559514 103.874731 \nL 335.559514 103.775543 \nL 335.488806 103.787857 \nL 335.418099 103.800175 \nL 335.418099 103.700821 \nL 335.347391 103.613623 \nL 335.276684 103.62594 \nL 335.276684 103.526263 \nL 335.205976 103.472037 \nL 335.135269 103.484355 \nL 335.135269 103.384405 \nL 335.064561 103.229777 \nL 334.993854 103.242092 \nL 334.993854 103.141707 \nL 334.923146 102.952761 \nL 334.852439 102.965072 \nL 334.852439 102.864195 \nL 334.781731 101.824494 \nL 334.640316 101.780566 \nL 334.640316 101.746297 \nL 334.640316 101.505893 \nL 334.569609 101.518161 \nL 334.357486 101.486122 \nL 334.357486 101.451662 \nL 334.286779 101.048931 \nL 334.216071 101.061196 \nL 334.216071 100.957016 \nL 334.145364 100.864925 \nL 333.933241 100.866898 \nL 333.933241 100.797186 \nL 333.862534 100.687271 \nL 333.791826 100.699539 \nL 333.791826 100.594619 \nL 333.791826 100.524577 \nL 333.721119 100.536841 \nL 333.650411 100.549108 \nL 333.650411 100.443892 \nL 333.579704 100.174722 \nL 333.508996 100.18698 \nL 333.508996 100.081117 \nL 333.438289 99.881115 \nL 333.084751 99.835989 \nL 333.014044 99.277688 \nL 332.943336 99.28993 \nL 332.943336 99.18238 \nL 332.872629 98.780664 \nL 332.801921 98.79289 \nL 332.801921 98.68446 \nL 332.731214 98.606183 \nL 332.589799 98.558135 \nL 332.589799 98.521856 \nL 332.519091 98.315967 \nL 332.448384 98.328186 \nL 332.448384 98.218849 \nL 332.377676 97.956905 \nL 332.306969 97.969113 \nL 332.306969 97.85912 \nL 332.236261 97.669181 \nL 332.094846 97.619915 \nL 332.094846 97.583049 \nL 332.024139 97.429088 \nL 331.882724 97.434995 \nL 331.882724 97.342465 \nL 331.812016 96.983214 \nL 331.670601 96.914385 \nL 331.670601 96.895729 \nL 331.599894 96.721054 \nL 331.387771 96.663961 \nL 331.387771 96.645216 \nL 331.317064 96.2059 \nL 331.104941 96.166844 \nL 331.104941 96.14794 \nL 331.034234 95.628564 \nL 330.892819 95.633797 \nL 330.892819 95.557483 \nL 330.822111 95.301827 \nL 330.751404 95.313966 \nL 330.751404 95.218054 \nL 330.680696 95.134137 \nL 330.539281 95.158411 \nL 330.539281 95.062207 \nL 330.468574 94.70748 \nL 330.327159 94.634836 \nL 330.256451 94.101742 \nL 330.185744 94.113839 \nL 330.185744 94.016005 \nL 330.115036 93.812352 \nL 330.044329 93.824438 \nL 330.044329 93.726136 \nL 330.044329 93.568553 \nL 329.973621 93.580629 \nL 329.690791 93.569759 \nL 329.690791 93.53026 \nL 329.620084 93.165928 \nL 329.478669 93.090651 \nL 329.407961 92.74358 \nL 329.195839 92.719697 \nL 329.195839 92.679632 \nL 329.125131 92.571346 \nL 328.983716 92.5352 \nL 328.983716 92.494997 \nL 328.913009 91.880824 \nL 328.559471 91.859719 \nL 328.559471 91.839391 \nL 328.488764 91.361717 \nL 328.418056 91.373723 \nL 328.418056 91.271252 \nL 328.347349 90.706538 \nL 328.276641 90.71851 \nL 328.276641 90.615007 \nL 328.205934 90.315512 \nL 328.135226 90.327465 \nL 328.135226 90.223324 \nL 328.064519 90.026506 \nL 327.993811 90.038445 \nL 327.993811 89.933818 \nL 327.923104 89.693986 \nL 327.852396 89.70591 \nL 327.852396 89.600729 \nL 327.781689 89.444017 \nL 327.710981 89.455929 \nL 327.710981 89.350319 \nL 327.640274 88.980673 \nL 327.428151 88.952537 \nL 327.428151 88.909965 \nL 327.357444 88.751297 \nL 327.145321 88.701504 \nL 327.145321 88.680125 \nL 327.074614 88.004343 \nL 326.933199 87.984823 \nL 326.933199 87.919958 \nL 326.862491 87.476031 \nL 326.791784 87.487845 \nL 326.791784 87.378885 \nL 326.721076 87.325234 \nL 326.650369 87.337043 \nL 326.650369 87.227797 \nL 326.579661 87.152078 \nL 326.508954 87.163881 \nL 326.508954 87.054314 \nL 326.438246 86.559873 \nL 326.226124 86.573084 \nL 326.226124 86.484625 \nL 326.155416 86.341313 \nL 325.872586 86.299584 \nL 325.872586 86.277368 \nL 325.801879 86.155683 \nL 325.731171 86.167444 \nL 325.731171 86.056033 \nL 325.660464 85.710073 \nL 325.589756 85.721807 \nL 325.589756 85.609643 \nL 325.519049 85.419017 \nL 325.306926 85.409126 \nL 325.306926 85.364041 \nL 325.236219 84.90062 \nL 324.953389 84.879244 \nL 324.953389 84.856511 \nL 324.882681 84.571998 \nL 324.670559 84.515634 \nL 324.599852 84.25237 \nL 324.529144 84.264034 \nL 324.529144 84.172144 \nL 324.458437 83.583607 \nL 324.387729 83.595224 \nL 324.387729 83.502435 \nL 324.317022 83.094987 \nL 324.246314 83.106571 \nL 324.246314 83.013109 \nL 324.175607 82.790489 \nL 324.034192 82.719715 \nL 323.963484 82.330789 \nL 323.822069 82.330231 \nL 323.822069 82.259293 \nL 323.751362 81.867506 \nL 323.680654 81.879011 \nL 323.680654 81.78378 \nL 323.609947 81.197222 \nL 323.539239 81.208675 \nL 323.539239 81.112525 \nL 323.539239 81.016249 \nL 323.468532 81.027689 \nL 323.327117 81.050582 \nL 323.327117 80.954155 \nL 323.327117 80.518668 \nL 323.256409 80.530074 \nL 322.973579 80.478568 \nL 322.902872 80.441349 \nL 322.761457 80.43985 \nL 322.761457 80.3668 \nL 322.690749 80.109723 \nL 322.620042 80.121118 \nL 322.620042 80.023235 \nL 322.620042 79.974244 \nL 322.549334 79.98563 \nL 322.266504 79.957632 \nL 322.266504 79.93309 \nL 322.195797 79.328223 \nL 322.054382 79.301385 \nL 322.054382 79.251821 \nL 321.983674 78.7407 \nL 321.912967 78.751999 \nL 321.912967 78.652058 \nL 321.842259 78.437975 \nL 321.700844 78.410348 \nL 321.700844 78.360129 \nL 321.630137 78.270857 \nL 321.559429 78.282127 \nL 321.559429 78.181435 \nL 321.488722 78.066633 \nL 321.276599 78.049914 \nL 321.276599 77.99938 \nL 321.276599 77.9741 \nL 321.205892 77.985357 \nL 321.064477 77.982585 \nL 321.064477 77.906648 \nL 320.993769 77.587927 \nL 320.923062 77.599158 \nL 320.923062 77.497325 \nL 320.923062 77.344318 \nL 320.852354 77.355528 \nL 320.710939 77.275755 \nL 320.640232 77.082119 \nL 320.498817 77.053208 \nL 320.498817 77.001864 \nL 320.428109 76.601015 \nL 320.357402 76.612173 \nL 320.357402 76.508802 \nL 320.286694 76.234927 \nL 320.003864 76.25349 \nL 320.003864 76.175513 \nL 319.933157 75.978295 \nL 319.791742 75.896123 \nL 319.721034 75.854973 \nL 319.579619 75.824893 \nL 319.579619 75.772548 \nL 319.508912 75.442499 \nL 319.367497 75.464663 \nL 319.367497 75.359363 \nL 319.367497 75.280293 \nL 319.296789 75.291363 \nL 319.013959 75.230072 \nL 318.943252 75.002978 \nL 318.660422 74.967645 \nL 318.660422 74.941097 \nL 318.589714 74.819271 \nL 318.519007 74.830324 \nL 318.519007 74.723836 \nL 318.448299 74.681577 \nL 318.377592 74.692621 \nL 318.377592 74.58589 \nL 318.306884 74.30262 \nL 318.236177 74.313632 \nL 318.236177 74.206321 \nL 318.165469 74.002231 \nL 317.953347 74.008263 \nL 317.953347 73.927395 \nL 317.953347 73.548888 \nL 317.882639 73.559835 \nL 317.670517 73.484167 \nL 317.599809 73.359226 \nL 317.387687 73.337618 \nL 317.387687 73.283139 \nL 317.387687 73.255885 \nL 317.316979 73.266822 \nL 317.246272 73.277764 \nL 317.246272 73.16863 \nL 317.246272 73.086678 \nL 317.175564 73.097603 \nL 317.034149 73.037401 \nL 317.034149 73.010027 \nL 317.034149 72.982644 \nL 316.963442 72.993566 \nL 316.822027 72.98802 \nL 316.822027 72.905756 \nL 316.822027 72.795935 \nL 316.751319 72.806846 \nL 316.609904 72.718667 \nL 316.539197 72.34327 \nL 316.468489 72.354143 \nL 316.468489 72.243405 \nL 316.397782 72.08785 \nL 316.327074 72.0987 \nL 316.327074 71.987544 \nL 316.256367 71.831338 \nL 316.185659 71.842166 \nL 316.185659 71.73059 \nL 316.114952 71.685556 \nL 315.973537 71.651289 \nL 315.973537 71.595344 \nL 315.902829 71.213373 \nL 315.761414 71.178639 \nL 315.761414 71.150481 \nL 315.690707 71.104901 \nL 315.478584 71.05259 \nL 315.407877 70.723885 \nL 315.266462 70.745365 \nL 315.266462 70.660248 \nL 315.195754 70.471997 \nL 315.125047 70.482715 \nL 315.125047 70.397271 \nL 315.054339 69.864626 \nL 314.912924 69.799784 \nL 314.842217 69.724178 \nL 314.630094 69.698551 \nL 314.630094 69.669747 \nL 314.630094 69.583271 \nL 314.559387 69.593909 \nL 314.347264 69.539237 \nL 314.347264 69.191851 \nL 314.276557 69.202455 \nL 314.064434 69.176217 \nL 314.064434 69.147165 \nL 313.993727 68.983219 \nL 313.852312 68.975271 \nL 313.852312 68.916966 \nL 313.852312 68.800229 \nL 313.781604 68.810805 \nL 313.710897 68.821386 \nL 313.710897 68.7337 \nL 313.710897 68.70445 \nL 313.640189 68.71502 \nL 313.569482 68.725595 \nL 313.569482 68.63776 \nL 313.498774 68.266545 \nL 313.286652 68.209743 \nL 313.215944 67.836053 \nL 313.074529 67.768081 \nL 313.003822 67.332285 \nL 312.933114 67.342719 \nL 312.933114 67.253155 \nL 312.862407 66.874269 \nL 312.720992 66.80491 \nL 312.650284 66.302581 \nL 312.579577 66.312903 \nL 312.579577 66.222076 \nL 312.508869 66.080767 \nL 312.226039 66.061229 \nL 312.226039 66.030832 \nL 312.155332 65.919421 \nL 312.084624 65.929714 \nL 312.084624 65.838296 \nL 312.013917 65.634847 \nL 311.943209 65.645109 \nL 311.943209 65.553325 \nL 311.872502 65.348987 \nL 311.731087 65.308023 \nL 311.731087 65.27729 \nL 311.660379 65.102852 \nL 311.589672 65.11306 \nL 311.589672 65.020559 \nL 311.589672 64.897061 \nL 311.518964 64.907246 \nL 311.236135 64.855219 \nL 311.165427 64.679461 \nL 310.81189 64.730362 \nL 310.81189 64.637169 \nL 310.741182 64.335899 \nL 310.670475 64.346043 \nL 310.670475 64.252364 \nL 310.599767 63.635153 \nL 310.387645 63.570787 \nL 310.316937 63.264843 \nL 310.175522 63.221525 \nL 310.175522 63.189825 \nL 310.104815 62.659011 \nL 309.9634 62.646978 \nL 309.9634 62.583077 \nL 309.892692 62.529061 \nL 309.751277 62.452884 \nL 309.751277 62.164045 \nL 309.68057 62.173939 \nL 309.39774 62.116988 \nL 309.39774 62.052547 \nL 309.327032 62.062439 \nL 309.185617 62.049983 \nL 309.185617 61.985441 \nL 309.11491 61.736627 \nL 308.902787 61.733809 \nL 308.902787 61.668956 \nL 308.902787 61.636511 \nL 308.83208 61.646364 \nL 308.690665 61.601127 \nL 308.690665 61.568631 \nL 308.690665 61.503599 \nL 308.619957 61.513442 \nL 308.478542 61.468031 \nL 308.478542 61.435458 \nL 308.407835 61.347489 \nL 308.054297 61.298695 \nL 307.98359 61.17768 \nL 307.70076 61.11867 \nL 307.630052 61.030039 \nL 307.347222 61.003586 \nL 307.347222 60.970698 \nL 307.276515 60.848814 \nL 307.1351 60.868424 \nL 307.1351 60.769484 \nL 307.064392 60.713248 \nL 306.922977 60.666732 \nL 306.922977 60.63366 \nL 306.85227 60.278745 \nL 306.56944 60.217929 \nL 306.498732 59.760322 \nL 305.791657 59.756656 \nL 305.72095 59.531064 \nL 305.508827 59.560096 \nL 305.508827 59.459011 \nL 305.508827 59.188859 \nL 305.43812 59.198491 \nL 305.084582 59.212851 \nL 305.084582 59.145093 \nL 305.013875 59.086911 \nL 304.87246 59.072243 \nL 304.87246 59.00432 \nL 304.801752 58.707573 \nL 304.58963 58.736348 \nL 304.58963 58.633932 \nL 304.518922 58.438284 \nL 304.3068 58.39842 \nL 304.3068 58.364124 \nL 304.236092 58.201965 \nL 303.882555 58.180841 \nL 303.882555 58.146403 \nL 303.811847 58.087015 \nL 303.316895 58.050219 \nL 303.246187 57.886788 \nL 302.963357 57.855572 \nL 302.963357 57.820886 \nL 302.89265 57.587178 \nL 302.751235 57.53652 \nL 302.751235 57.501677 \nL 302.680527 57.336708 \nL 302.468405 57.260212 \nL 302.397697 56.989292 \nL 302.256282 56.937874 \nL 302.256282 56.902724 \nL 302.185575 56.806579 \nL 301.973452 56.834785 \nL 301.973452 56.729052 \nL 301.902745 56.667875 \nL 301.690622 56.625386 \nL 301.690622 56.590034 \nL 301.690622 56.377612 \nL 301.619915 56.386962 \nL 301.337085 56.353425 \nL 301.337085 56.317915 \nL 301.266377 56.042609 \nL 300.842132 56.027175 \nL 300.842132 55.991464 \nL 300.842132 55.776888 \nL 300.771425 55.786176 \nL 300.34718 55.734381 \nL 300.34718 55.698483 \nL 300.276472 55.707776 \nL 299.993642 55.63712 \nL 299.922935 55.502362 \nL 299.640105 55.431229 \nL 299.640105 55.358977 \nL 299.569397 55.368241 \nL 299.357275 55.323701 \nL 299.357275 55.2875 \nL 299.286567 55.224303 \nL 299.145152 55.170276 \nL 299.145152 55.133982 \nL 299.074445 54.997877 \nL 298.862322 54.95277 \nL 298.862322 54.916347 \nL 298.862322 54.843453 \nL 298.791615 54.852664 \nL 298.6502 54.834611 \nL 298.6502 54.761591 \nL 298.579492 54.624549 \nL 298.08454 54.652293 \nL 298.08454 54.578966 \nL 298.013832 54.330985 \nL 297.943125 54.340145 \nL 297.943125 54.229676 \nL 297.872418 54.165085 \nL 297.306758 54.164402 \nL 297.306758 54.127433 \nL 297.306758 54.090447 \nL 297.23605 54.099592 \nL 297.023928 54.015929 \nL 296.95322 53.876666 \nL 296.67039 53.838835 \nL 296.67039 53.801639 \nL 296.67039 53.764427 \nL 296.599683 53.773541 \nL 296.316853 53.698216 \nL 296.316853 53.623588 \nL 296.246145 53.632692 \nL 296.034023 53.622665 \nL 296.034023 53.585287 \nL 296.034023 53.510483 \nL 295.963315 53.519578 \nL 295.892608 53.528677 \nL 295.892608 53.453785 \nL 295.892608 53.416315 \nL 295.8219 53.4254 \nL 295.751193 53.434489 \nL 295.751193 53.359476 \nL 295.680485 53.180712 \nL 295.397655 53.141651 \nL 295.397655 53.02858 \nL 295.326948 53.037619 \nL 295.044118 53.036058 \nL 295.044118 52.998289 \nL 294.97341 52.81821 \nL 294.69058 52.816408 \nL 294.69058 52.778493 \nL 294.69058 52.702614 \nL 294.619873 52.711623 \nL 294.478458 52.653671 \nL 294.40775 52.472403 \nL 294.12492 52.432074 \nL 294.12492 52.241094 \nL 294.054213 52.250046 \nL 293.55926 52.236209 \nL 293.488553 52.05333 \nL 293.135015 52.059629 \nL 293.135015 52.02116 \nL 293.135015 51.982674 \nL 293.064308 51.991617 \nL 292.781478 51.988891 \nL 292.781478 51.95034 \nL 292.71077 51.611507 \nL 292.569355 51.6293 \nL 292.569355 51.551803 \nL 292.498648 51.444299 \nL 292.215818 51.402083 \nL 292.14511 51.216294 \nL 291.720865 51.230408 \nL 291.720865 51.191367 \nL 291.720865 51.152308 \nL 291.650158 51.161158 \nL 291.57945 51.170012 \nL 291.57945 51.091817 \nL 291.508743 50.904837 \nL 291.225913 50.861616 \nL 291.155205 50.476798 \nL 290.943083 50.424092 \nL 290.872375 50.076514 \nL 290.73096 50.014499 \nL 290.660253 49.784503 \nL 290.518838 49.722075 \nL 290.44813 49.571015 \nL 290.1653 49.525501 \nL 290.1653 49.485466 \nL 290.094593 49.49408 \nL 289.88247 49.519944 \nL 289.88247 49.439765 \nL 289.88247 49.399649 \nL 289.811763 49.408257 \nL 289.458225 49.370983 \nL 289.387518 49.258886 \nL 289.104688 49.212684 \nL 289.104688 49.131988 \nL 289.03398 49.140574 \nL 288.892565 49.076947 \nL 288.892565 49.036514 \nL 288.821858 49.04509 \nL 288.680443 49.062255 \nL 288.680443 48.981291 \nL 288.680443 48.900253 \nL 288.609735 48.908812 \nL 288.326905 48.861905 \nL 288.326905 48.780649 \nL 288.256198 48.789198 \nL 287.973368 48.782744 \nL 287.973368 48.742033 \nL 287.973368 48.701304 \nL 287.90266 48.709851 \nL 287.61983 48.662492 \nL 287.549123 48.466716 \nL 287.266293 48.459865 \nL 287.266293 48.418896 \nL 287.266293 48.377907 \nL 287.195585 48.38642 \nL 287.05417 48.32138 \nL 286.983463 48.083164 \nL 286.700633 48.075845 \nL 286.700633 48.03461 \nL 286.629925 47.877919 \nL 286.417803 47.82052 \nL 286.347095 47.704687 \nL 285.64002 47.705971 \nL 285.64002 47.53955 \nL 285.569313 47.547964 \nL 285.286483 47.498255 \nL 285.286483 47.456525 \nL 285.215775 47.464935 \nL 284.932945 47.415019 \nL 284.862238 47.339746 \nL 284.79153 47.348148 \nL 284.79153 47.264368 \nL 284.79153 47.222449 \nL 284.720823 47.230832 \nL 284.650115 47.239219 \nL 284.650115 47.155291 \nL 284.579408 47.037605 \nL 284.225871 47.037325 \nL 284.225871 46.995207 \nL 284.155163 46.623552 \nL 283.518796 46.613516 \nL 283.518796 46.571083 \nL 283.448088 46.579387 \nL 283.306673 46.511032 \nL 283.306673 46.255634 \nL 283.235966 46.263885 \nL 283.165258 46.27214 \nL 283.165258 46.186816 \nL 283.165258 46.144124 \nL 283.094551 46.152358 \nL 282.599598 46.124535 \nL 282.528891 46.047113 \nL 282.387476 45.977808 \nL 282.316768 45.857185 \nL 282.033938 45.803971 \nL 281.963231 45.596613 \nL 281.751108 45.577933 \nL 281.751108 45.534714 \nL 281.751108 45.491474 \nL 281.680401 45.49963 \nL 281.397571 45.445669 \nL 281.397571 45.402326 \nL 281.326863 45.410477 \nL 280.973326 45.407874 \nL 280.973326 45.364439 \nL 280.902618 45.242145 \nL 280.761203 45.171316 \nL 280.690496 45.004951 \nL 280.336958 44.958017 \nL 280.266251 44.834751 \nL 279.559176 44.827845 \nL 279.488468 44.659952 \nL 279.276346 44.640092 \nL 279.276346 44.595994 \nL 279.276346 44.551875 \nL 279.205638 44.559929 \nL 278.710686 44.527975 \nL 278.710686 44.483723 \nL 278.639978 44.491782 \nL 278.145026 44.50396 \nL 278.145026 44.459595 \nL 278.074318 44.334419 \nL 277.791488 44.277633 \nL 277.791488 44.233095 \nL 277.720781 44.241135 \nL 277.508658 44.220681 \nL 277.508658 44.176065 \nL 277.508658 44.086769 \nL 277.437951 44.094788 \nL 277.084413 44.045453 \nL 277.084413 43.955877 \nL 277.013706 43.963883 \nL 276.730876 43.951084 \nL 276.730876 43.906197 \nL 276.660168 43.644366 \nL 276.235923 43.601944 \nL 276.165216 43.519571 \nL 275.599556 43.492702 \nL 275.599556 43.447383 \nL 275.528848 43.455336 \nL 275.458141 43.463293 \nL 275.458141 43.372552 \nL 275.458141 43.236273 \nL 275.387433 43.244188 \nL 274.963188 43.246223 \nL 274.963188 43.200665 \nL 274.963188 43.155085 \nL 274.892481 43.162999 \nL 274.680358 43.095463 \nL 274.680358 43.049778 \nL 274.609651 43.05768 \nL 274.256113 43.005699 \nL 274.256113 42.868205 \nL 274.185406 42.876084 \nL 273.831868 42.823647 \nL 273.831868 42.777668 \nL 273.761161 42.785542 \nL 273.054086 42.77226 \nL 272.983378 42.641607 \nL 272.771256 42.61898 \nL 272.771256 42.572698 \nL 272.771256 42.526394 \nL 272.700548 42.53425 \nL 272.488426 42.557842 \nL 272.488426 42.465087 \nL 272.488426 42.418675 \nL 272.417718 42.426518 \nL 271.852058 42.396336 \nL 271.852058 42.163258 \nL 271.781351 42.171068 \nL 271.215691 42.140123 \nL 271.215691 42.093303 \nL 271.144984 42.101119 \nL 270.932861 42.030802 \nL 270.932861 41.983871 \nL 270.862154 41.991674 \nL 270.225786 41.967946 \nL 270.225786 41.920845 \nL 270.155079 41.928658 \nL 269.801541 41.920595 \nL 269.801541 41.873387 \nL 269.801541 41.636989 \nL 269.730834 41.644755 \nL 269.518711 41.57327 \nL 269.518711 41.478366 \nL 269.448004 41.486107 \nL 269.165174 41.422012 \nL 269.094466 41.334534 \nL 268.811636 41.27006 \nL 268.811636 41.222325 \nL 268.740929 41.230035 \nL 268.458099 41.165269 \nL 268.387391 40.981352 \nL 267.821731 40.946713 \nL 267.751024 40.520515 \nL 267.326779 40.469314 \nL 267.256071 40.282934 \nL 267.114656 40.298052 \nL 267.114656 40.200872 \nL 267.114656 40.152244 \nL 267.043949 40.159777 \nL 266.690411 40.100042 \nL 266.690411 40.051275 \nL 266.619704 40.058799 \nL 266.124751 40.013798 \nL 266.054044 39.776379 \nL 265.841921 39.700619 \nL 265.841921 39.602292 \nL 265.771214 39.609745 \nL 265.205554 39.57088 \nL 265.134846 39.479595 \nL 264.781309 39.467404 \nL 264.781309 39.417909 \nL 264.781309 39.368388 \nL 264.710601 39.375823 \nL 263.791404 39.373394 \nL 263.720696 39.231486 \nL 263.508574 39.203933 \nL 263.508574 39.154029 \nL 263.508574 39.104099 \nL 263.437866 39.111514 \nL 263.155036 39.091203 \nL 263.155036 39.041164 \nL 263.155036 38.941006 \nL 263.084329 38.948396 \nL 262.730791 38.935219 \nL 262.730791 38.885006 \nL 262.660084 38.791868 \nL 261.811594 38.779682 \nL 261.740886 38.686038 \nL 261.104519 38.65122 \nL 261.033811 38.506338 \nL 260.609566 38.44876 \nL 260.538859 38.201109 \nL 260.326736 38.120767 \nL 260.326736 38.069593 \nL 260.256029 38.076873 \nL 259.973199 38.003486 \nL 259.973199 37.952169 \nL 259.902491 37.959434 \nL 259.548954 37.892959 \nL 259.548954 37.841488 \nL 259.478246 37.848741 \nL 259.407539 37.855997 \nL 259.407539 37.752923 \nL 259.407539 37.494751 \nL 259.336831 37.501927 \nL 259.054001 37.427086 \nL 259.054001 37.219577 \nL 258.983294 37.2267 \nL 258.700464 37.151186 \nL 258.700464 37.099121 \nL 258.629756 37.106227 \nL 257.498437 37.115815 \nL 257.427729 36.965759 \nL 257.357022 36.972874 \nL 257.357022 36.867903 \nL 257.357022 36.815374 \nL 257.286314 36.822455 \nL 256.508532 36.795156 \nL 256.508532 36.742391 \nL 256.437824 36.74948 \nL 256.154994 36.725021 \nL 256.154994 36.672135 \nL 256.154994 36.619219 \nL 256.084287 36.62629 \nL 255.377212 36.591022 \nL 255.377212 36.537878 \nL 255.306504 36.544954 \nL 254.882259 36.48094 \nL 254.811552 36.38132 \nL 254.528722 36.356124 \nL 254.528722 36.302649 \nL 254.458014 36.041807 \nL 253.185279 36.060307 \nL 253.114572 35.905316 \nL 252.478204 35.860002 \nL 252.407497 35.70413 \nL 252.053959 35.630134 \nL 252.053959 35.575653 \nL 251.983252 35.582599 \nL 251.629714 35.562797 \nL 251.629714 35.508174 \nL 251.629714 35.453519 \nL 251.559007 35.460449 \nL 250.569102 35.448066 \nL 250.569102 35.338131 \nL 250.498394 35.345065 \nL 250.356979 35.358945 \nL 250.356979 35.248802 \nL 250.286272 35.145425 \nL 248.801414 35.180046 \nL 248.801414 35.124496 \nL 248.730707 35.131433 \nL 247.882217 35.103422 \nL 247.882217 35.047593 \nL 247.811509 35.054539 \nL 247.740802 35.06149 \nL 247.740802 35.0056 \nL 247.670094 34.900636 \nL 246.821604 34.92772 \nL 246.821604 34.871516 \nL 246.750897 34.878452 \nL 246.326652 34.863813 \nL 246.255944 34.70151 \nL 245.902407 34.679546 \nL 245.902407 34.622957 \nL 245.831699 34.629859 \nL 245.619577 34.593907 \nL 245.619577 34.537194 \nL 245.548869 34.544083 \nL 244.771087 34.563201 \nL 244.700379 34.342042 \nL 244.558964 34.298648 \nL 244.558964 34.24148 \nL 244.488257 34.248326 \nL 244.13472 34.225327 \nL 244.13472 34.168003 \nL 244.064012 34.174843 \nL 243.781182 34.202246 \nL 243.781182 34.144813 \nL 243.781182 33.972311 \nL 243.710475 33.979112 \nL 243.498352 33.94191 \nL 243.498352 33.82655 \nL 243.427645 33.833321 \nL 242.861985 33.829772 \nL 242.861985 33.713933 \nL 242.791277 33.720695 \nL 242.649862 33.734232 \nL 242.649862 33.676215 \nL 242.649862 33.618164 \nL 242.579155 33.624907 \nL 242.508447 33.631655 \nL 242.508447 33.573539 \nL 242.508447 33.515387 \nL 242.43774 33.522108 \nL 242.367032 33.528834 \nL 242.367032 33.470617 \nL 242.367032 33.412365 \nL 242.296325 33.419063 \nL 241.659957 33.421089 \nL 241.659957 33.304102 \nL 241.58925 33.310794 \nL 241.165005 33.292376 \nL 241.094297 33.181632 \nL 240.882175 33.142852 \nL 240.882175 33.083993 \nL 240.811467 33.090651 \nL 240.033685 33.10507 \nL 239.962977 32.875001 \nL 239.821562 32.828955 \nL 239.821562 32.769607 \nL 239.750855 32.776214 \nL 239.397317 32.74983 \nL 239.397317 32.690314 \nL 239.32661 32.696913 \nL 238.973072 32.670319 \nL 238.973072 32.550911 \nL 238.902365 32.557486 \nL 238.690242 32.517411 \nL 238.619535 32.404196 \nL 237.841752 32.416291 \nL 237.841752 32.356125 \nL 237.771045 32.362682 \nL 237.276092 32.34836 \nL 237.276092 32.287987 \nL 237.205385 32.294544 \nL 236.286187 32.319503 \nL 236.286187 32.258823 \nL 236.21548 32.265403 \nL 235.791235 32.244132 \nL 235.720527 32.006935 \nL 235.225575 31.991558 \nL 235.225575 31.930359 \nL 235.154867 31.936882 \nL 234.872037 31.963013 \nL 234.872037 31.901691 \nL 234.872037 31.84033 \nL 234.80133 31.846839 \nL 234.659915 31.859869 \nL 234.659915 31.798418 \nL 234.659915 31.73693 \nL 234.589207 31.743416 \nL 232.82152 31.844933 \nL 232.82152 31.72086 \nL 232.750812 31.727401 \nL 232.326567 31.704515 \nL 232.25586 31.586477 \nL 230.346758 31.701174 \nL 230.346758 31.638298 \nL 230.27605 31.644896 \nL 229.851805 31.621532 \nL 229.851805 31.495326 \nL 229.781098 31.5019 \nL 229.71039 31.508478 \nL 229.71039 31.445278 \nL 229.71039 31.382037 \nL 229.639683 31.388583 \nL 229.42756 31.344891 \nL 229.356853 31.224568 \nL 229.215438 31.174064 \nL 229.215438 31.110492 \nL 229.14473 31.116975 \nL 228.508363 31.111716 \nL 228.508363 31.047876 \nL 228.437655 31.054364 \nL 227.73058 31.055393 \nL 227.73058 30.991266 \nL 227.659873 30.997763 \nL 227.023505 30.992072 \nL 227.023505 30.927673 \nL 226.952798 30.934175 \nL 226.740675 30.953706 \nL 226.740675 30.889189 \nL 226.740675 30.824631 \nL 226.669968 30.831112 \nL 226.387138 30.857078 \nL 226.387138 30.792382 \nL 226.31643 30.669307 \nL 225.18511 30.707854 \nL 225.114403 30.583884 \nL 225.043695 30.590347 \nL 225.043695 30.525029 \nL 224.972988 30.400673 \nL 224.05379 30.418661 \nL 223.983083 30.293496 \nL 223.276008 30.29176 \nL 223.276008 30.225645 \nL 223.2053 30.232063 \nL 222.498225 30.230093 \nL 222.498225 30.097201 \nL 222.427518 30.103605 \nL 221.932565 30.081882 \nL 221.932565 30.015162 \nL 221.861858 30.021561 \nL 221.720443 30.03437 \nL 221.720443 29.967545 \nL 221.720443 29.900674 \nL 221.649735 29.907045 \nL 221.22549 29.8783 \nL 221.154783 29.615909 \nL 220.94266 29.56746 \nL 220.94266 29.500046 \nL 220.871953 29.506319 \nL 219.882048 29.526826 \nL 219.882048 29.459007 \nL 219.81134 29.465303 \nL 219.387095 29.435157 \nL 219.387095 29.367098 \nL 219.316388 29.373382 \nL 218.043653 29.418723 \nL 218.043653 29.350166 \nL 217.972945 29.35649 \nL 216.629503 29.408435 \nL 216.629503 29.339351 \nL 216.558796 29.345719 \nL 216.134551 29.314736 \nL 216.134551 29.176021 \nL 216.063843 29.182355 \nL 214.084033 29.361499 \nL 214.084033 29.291426 \nL 214.013326 29.157527 \nL 213.023421 29.176987 \nL 213.023421 29.106377 \nL 212.952713 29.112795 \nL 212.457761 29.087011 \nL 212.457761 29.016118 \nL 212.387053 29.022527 \nL 211.962808 28.989975 \nL 211.962808 28.918819 \nL 211.892101 28.925214 \nL 211.609271 28.879519 \nL 211.609271 28.808146 \nL 211.538563 28.814517 \nL 210.902196 28.872069 \nL 210.902196 28.800411 \nL 210.902196 28.728702 \nL 210.831488 28.735072 \nL 209.770876 28.759045 \nL 209.770876 28.686854 \nL 209.700168 28.693251 \nL 209.063801 28.751033 \nL 209.063801 28.678551 \nL 209.063801 28.606016 \nL 208.993093 28.612412 \nL 208.498141 28.58453 \nL 208.498141 28.511697 \nL 208.427433 28.518081 \nL 207.366821 28.541133 \nL 207.366821 28.467803 \nL 207.296113 28.474213 \nL 207.225406 28.480628 \nL 207.225406 28.407195 \nL 207.225406 28.333708 \nL 207.154698 28.340079 \nL 206.023378 28.368686 \nL 206.023378 28.294668 \nL 205.952671 28.301069 \nL 205.174888 28.297419 \nL 205.174888 28.22299 \nL 205.104181 28.229397 \nL 204.679936 28.193281 \nL 204.679936 28.043788 \nL 204.609228 28.050152 \nL 203.972861 28.107649 \nL 203.972861 28.032562 \nL 203.902154 27.888555 \nL 202.841541 27.908483 \nL 202.770834 27.7633 \nL 201.498099 27.801777 \nL 201.427391 27.655255 \nL 200.437486 27.667674 \nL 200.437486 27.590691 \nL 200.366779 27.597055 \nL 200.013241 27.62895 \nL 200.013241 27.551745 \nL 200.013241 27.47448 \nL 199.942534 27.480819 \nL 199.306166 27.460493 \nL 199.306166 27.382835 \nL 199.235459 27.389168 \nL 198.740506 27.355698 \nL 198.740506 27.277698 \nL 198.669799 27.284015 \nL 197.821309 27.281777 \nL 197.821309 27.124746 \nL 197.750601 27.131042 \nL 196.760696 27.14068 \nL 196.760696 27.061584 \nL 196.689989 27.067898 \nL 195.558669 27.089951 \nL 195.487961 26.856912 \nL 193.225321 26.979749 \nL 193.225321 26.817804 \nL 193.154614 26.824164 \nL 192.306124 26.819429 \nL 192.306124 26.737901 \nL 192.235416 26.744267 \nL 192.023294 26.681682 \nL 192.023294 26.5999 \nL 191.952586 26.606226 \nL 190.821266 26.625777 \nL 190.821266 26.460829 \nL 190.750559 26.46715 \nL 190.467729 26.409755 \nL 190.467729 26.326956 \nL 190.397022 26.333241 \nL 189.194994 26.357434 \nL 189.194994 26.273929 \nL 189.124287 26.280244 \nL 189.053579 26.286564 \nL 189.053579 26.202926 \nL 189.053579 26.119219 \nL 188.982872 26.12548 \nL 188.205089 26.11053 \nL 188.205089 26.026296 \nL 188.134382 26.032555 \nL 187.922259 26.051362 \nL 187.922259 25.966928 \nL 187.922259 25.882424 \nL 187.851552 25.888638 \nL 186.578817 25.916188 \nL 186.578817 25.830916 \nL 186.508109 25.837163 \nL 185.588912 25.833049 \nL 185.588912 25.747163 \nL 185.518204 25.753417 \nL 183.538394 25.84377 \nL 183.538394 25.756745 \nL 183.467687 25.763086 \nL 182.760612 25.739322 \nL 182.760612 25.651763 \nL 182.689904 25.658095 \nL 182.194952 25.614657 \nL 182.194952 25.526663 \nL 182.124244 25.532969 \nL 178.164624 25.80488 \nL 178.164624 25.71466 \nL 178.093917 25.721214 \nL 177.104012 25.722734 \nL 177.104012 25.631789 \nL 177.033305 25.638357 \nL 176.396937 25.606324 \nL 176.396937 25.331607 \nL 176.32623 25.338081 \nL 176.0434 25.272102 \nL 176.0434 25.087991 \nL 175.972692 25.094377 \nL 174.487835 25.136801 \nL 174.487835 25.043671 \nL 174.417127 25.050108 \nL 173.285807 25.060004 \nL 173.285807 24.966021 \nL 173.2151 24.972478 \nL 172.861562 24.91054 \nL 172.861562 24.816139 \nL 172.790855 24.822551 \nL 172.437317 24.759963 \nL 172.437317 24.570229 \nL 172.36661 24.576553 \nL 170.66963 24.63407 \nL 170.66963 24.537936 \nL 170.598922 24.544325 \nL 168.68982 24.621715 \nL 168.68982 24.426581 \nL 168.619112 24.433012 \nL 168.336282 24.36087 \nL 168.265575 24.171065 \nL 167.134255 24.174207 \nL 167.134255 24.075145 \nL 167.063547 24.081489 \nL 166.356472 24.045619 \nL 166.356472 23.945866 \nL 166.285765 23.952187 \nL 163.669588 24.08889 \nL 163.59888 23.891775 \nL 162.46756 23.892646 \nL 162.46756 23.789807 \nL 162.396853 23.796241 \nL 162.043315 23.725273 \nL 162.043315 23.621935 \nL 161.972608 23.62831 \nL 161.477655 23.56928 \nL 161.477655 23.465337 \nL 161.406948 23.471665 \nL 160.841288 23.418025 \nL 160.841288 23.313423 \nL 160.77058 23.319709 \nL 160.063505 23.277658 \nL 160.063505 23.172285 \nL 159.992798 23.17854 \nL 159.780675 23.09166 \nL 159.709968 22.886088 \nL 157.800865 22.946471 \nL 157.730158 22.737332 \nL 157.235205 22.672313 \nL 157.235205 22.563958 \nL 157.164498 22.570051 \nL 155.255395 22.627026 \nL 155.255395 22.516907 \nL 155.184688 22.523073 \nL 153.98266 22.517662 \nL 153.98266 22.406293 \nL 153.911953 22.412466 \nL 153.69983 22.431024 \nL 153.69983 22.319306 \nL 153.629123 22.325448 \nL 152.780633 22.399678 \nL 152.709925 22.180488 \nL 152.497803 22.198868 \nL 152.497803 22.085798 \nL 152.427095 22.091879 \nL 151.225068 22.196295 \nL 151.225068 21.967644 \nL 151.15436 21.973728 \nL 150.376578 22.041094 \nL 150.376578 21.925852 \nL 150.305871 21.931956 \nL 149.810918 21.974878 \nL 149.810918 21.859017 \nL 149.740211 21.865114 \nL 149.174551 21.914143 \nL 149.174551 21.797593 \nL 149.103843 21.803691 \nL 148.891721 21.822024 \nL 148.891721 21.705093 \nL 148.821013 21.711155 \nL 148.326061 21.753784 \nL 148.326061 21.636215 \nL 148.255353 21.642269 \nL 146.982618 21.752433 \nL 146.982618 21.633511 \nL 146.911911 21.639633 \nL 146.629081 21.664193 \nL 146.629081 21.544808 \nL 146.558373 21.5509 \nL 146.487666 21.556999 \nL 146.487666 21.437345 \nL 146.416958 21.443385 \nL 146.346251 21.449433 \nL 146.346251 21.329508 \nL 146.275543 21.335497 \nL 144.437148 21.493674 \nL 144.437148 21.371798 \nL 144.366441 21.377911 \nL 144.225026 21.390157 \nL 144.225026 21.267932 \nL 144.154318 21.273997 \nL 143.588658 21.32278 \nL 143.588658 21.199789 \nL 143.517951 21.20585 \nL 140.972481 21.428946 \nL 140.972481 21.30318 \nL 140.901773 21.309444 \nL 140.194698 21.372503 \nL 140.194698 21.245779 \nL 140.123991 21.252054 \nL 139.204793 21.33433 \nL 139.204793 21.206408 \nL 139.134086 21.212717 \nL 138.851256 21.238029 \nL 138.851256 21.109572 \nL 138.780548 21.115844 \nL 137.507813 21.230084 \nL 137.437106 20.976038 \nL 135.528004 21.148272 \nL 135.528004 21.015649 \nL 135.457296 21.022061 \nL 134.679514 21.093145 \nL 134.679514 20.959374 \nL 134.608806 20.965804 \nL 133.123949 21.102779 \nL 133.123949 20.966999 \nL 133.053241 20.973531 \nL 131.144139 21.153188 \nL 131.144139 21.014813 \nL 131.073431 21.021503 \nL 130.083526 21.116117 \nL 130.083526 20.83614 \nL 130.012819 20.842786 \nL 129.235036 20.916496 \nL 129.235036 20.775132 \nL 129.164329 20.781795 \nL 128.245131 20.86926 \nL 128.245131 20.583351 \nL 128.174424 20.589956 \nL 127.962301 20.609826 \nL 127.962301 20.466199 \nL 127.891594 20.472746 \nL 125.204709 20.728423 \nL 125.204709 20.580797 \nL 125.134001 20.587611 \nL 124.356219 20.663219 \nL 124.356219 20.514169 \nL 124.285511 20.520999 \nL 123.295607 20.617667 \nL 123.295607 20.466853 \nL 123.224899 20.473729 \nL 122.871362 20.508257 \nL 122.871362 20.356593 \nL 122.800654 20.363423 \nL 122.234994 20.418426 \nL 122.234994 20.265582 \nL 122.164287 20.272395 \nL 121.810749 20.306614 \nL 121.810749 20.152897 \nL 121.740042 20.159662 \nL 120.467307 20.283174 \nL 120.467307 20.127135 \nL 120.396599 20.133982 \nL 120.325892 20.14084 \nL 120.325892 19.984343 \nL 120.255184 19.991098 \nL 120.113769 20.00464 \nL 120.113769 19.847568 \nL 120.043062 19.854241 \nL 119.548109 19.901235 \nL 119.548109 19.743012 \nL 119.477402 19.749652 \nL 117.921837 19.898308 \nL 117.921837 19.737148 \nL 117.851129 19.743906 \nL 117.568299 19.771042 \nL 117.568299 19.609032 \nL 117.497592 19.615722 \nL 116.366272 19.724191 \nL 116.366272 19.559849 \nL 116.295564 19.566595 \nL 113.325849 19.859854 \nL 113.325849 19.519317 \nL 113.255142 19.526278 \nL 112.760189 19.575324 \nL 112.760189 19.403561 \nL 112.689482 19.410478 \nL 112.194529 19.459219 \nL 112.194529 19.286079 \nL 112.123822 19.29295 \nL 111.558162 19.348334 \nL 111.558162 19.173655 \nL 111.487454 19.18049 \nL 110.285427 19.298455 \nL 110.285427 19.120917 \nL 110.21472 19.127817 \nL 109.436937 19.204502 \nL 109.436937 19.024901 \nL 109.36623 19.031796 \nL 109.295522 19.038703 \nL 109.295522 18.858496 \nL 109.224815 18.865265 \nL 108.729862 18.91298 \nL 108.729862 18.731257 \nL 108.659155 18.737969 \nL 108.447032 18.758174 \nL 108.447032 18.575525 \nL 108.376325 18.582131 \nL 105.194487 18.891778 \nL 105.194487 18.701453 \nL 105.12378 18.708455 \nL 104.487412 18.772051 \nL 104.487412 18.579696 \nL 104.416705 18.586657 \nL 103.285385 18.699797 \nL 103.285385 18.504144 \nL 103.214677 18.511152 \nL 101.941942 18.639561 \nL 101.941942 18.440131 \nL 101.871235 18.447211 \nL 101.022745 18.533232 \nL 101.022745 18.331011 \nL 100.952037 18.338081 \nL 98.61869 18.579298 \nL 98.61869 18.370066 \nL 98.547982 18.377422 \nL 92.325723 19.087796 \nL 92.325723 18.628692 \nL 92.255015 18.637067 \nL 91.26511 18.756276 \nL 91.26511 18.522254 \nL 91.194403 18.53066 \nL 90.69945 18.59003 \nL 90.69945 18.353446 \nL 90.628743 18.361747 \nL 90.204498 18.411946 \nL 90.204498 18.173007 \nL 90.13379 18.181178 \nL 89.780253 18.222312 \nL 89.780253 17.981237 \nL 89.709545 17.989253 \nL 89.143885 18.054051 \nL 89.143885 17.809984 \nL 89.073178 17.817895 \nL 88.790348 17.849721 \nL 88.790348 17.603705 \nL 88.71964 17.611429 \nL 88.648933 17.619172 \nL 88.648933 17.372021 \nL 88.578225 17.3795 \nL 83.133748 18.013412 \nL 83.133748 17.741544 \nL 83.063041 17.750267 \nL 82.709503 17.794219 \nL 82.709503 17.519584 \nL 82.638796 17.528096 \nL 82.497381 17.545187 \nL 82.497381 17.268786 \nL 82.426673 17.277014 \nL 81.083231 17.43755 \nL 81.083231 17.153181 \nL 81.012523 17.161486 \nL 79.103421 17.394513 \nL 79.103421 17.098517 \nL 79.032713 17.107084 \nL 78.537761 17.167729 \nL 78.537761 16.867628 \nL 78.467053 16.875976 \nL 77.335733 17.012843 \nL 77.335733 16.704641 \nL 77.265026 16.712971 \nL 77.194318 16.721324 \nL 77.194318 16.411342 \nL 77.123611 16.419277 \nL 76.628658 16.475485 \nL 76.628658 16.160999 \nL 76.557951 16.168669 \nL 70.052861 16.987239 \nL 69.416494 17.081457 \nL 69.416494 16.711303 \nL 69.345786 16.721324 \nL 68.285174 16.875976 \nL 68.285174 16.494092 \nL 68.214466 16.504029 \nL 66.941731 16.689237 \nL 66.941731 16.292702 \nL 66.871024 16.302633 \nL 65.598289 16.487995 \nL 65.598289 16.075639 \nL 65.527581 16.085535 \nL 65.032629 16.155899 \nL 65.032629 15.735536 \nL 64.961921 15.744933 \nL 64.396261 15.821477 \nL 64.396261 15.391946 \nL 64.325554 15.400838 \nL 63.264941 15.538676 \nL 63.264941 15.093277 \nL 63.194234 15.10186 \nL 63.052819 15.119135 \nL 63.052819 14.669092 \nL 62.982111 14.676851 \nL 57.679049 15.369872 \nL 56.547729 15.552936 \nL 56.547729 14.994179 \nL 56.477022 15.004692 \nL 53.931552 15.42387 \nL 53.931552 14.802834 \nL 53.860844 14.813956 \nL 50.961837 15.333571 \nL 50.961837 14.623219 \nL 50.891129 14.635339 \nL 48.133537 15.180757 \nL 48.133537 14.357365 \nL 48.062829 14.370382 \nL 45.022407 15.044614 \nL 42.68906 15.77812 \nL 41.84057 16.115454 \nL 41.84057 14.8591 \nL 41.769862 14.882076 \nL 41.345617 15.025885 \nL 41.345617 13.700337 \nL 41.27491 13.717219 \nL 39.224392 14.318913 \nL 38.517317 14.593268 \nL 38.517317 12.811219 \nL 38.44661 12.826446 \nL 36.608215 13.337283 \nL 35.264772 13.937597 \nL 34.274867 14.623219 \nL 33.497085 15.43677 \nL 33.214255 15.831219 \nL 33.214255 10.999219 \nL 33.143547 10.999219 \nL 30.103125 10.999219 \nL 30.103125 10.999219 \n\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 30.103125 228.439219 \nL 30.103125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 364.903125 228.439219 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 30.103125 228.439219 \nL 364.903125 228.439219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 30.103125 10.999219 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p42da8c7af7\">\n   <rect height=\"217.44\" width=\"334.8\" x=\"30.103125\" y=\"10.999219\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_recall_curve\n",
    "\n",
    "precision, recall, thresholds = precision_recall_curve(y_train_is_5, y_scores)\n",
    "plt.plot(recall, precision)\n",
    "plt.axis((0,1,0,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(0, 1, 0, 1)"
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"252.317344pt\" version=\"1.1\" viewBox=\"0 0 380.054687 252.317344\" width=\"380.054687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 252.317344 \nL 380.054687 252.317344 \nL 380.054687 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 30.103125 228.439219 \nL 364.903125 228.439219 \nL 364.903125 10.999219 \nL 30.103125 10.999219 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"mfee9d7fa8d\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#mfee9d7fa8d\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0.0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       <path d=\"M 10.6875 12.40625 \nL 21 12.40625 \nL 21 0 \nL 10.6875 0 \nz\n\" id=\"DejaVuSans-46\"/>\n      </defs>\n      <g transform=\"translate(22.151563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"97.063125\" xlink:href=\"#mfee9d7fa8d\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 0.2 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(89.111563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"164.023125\" xlink:href=\"#mfee9d7fa8d\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 0.4 -->\n      <defs>\n       <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n      </defs>\n      <g transform=\"translate(156.071563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"230.983125\" xlink:href=\"#mfee9d7fa8d\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 0.6 -->\n      <defs>\n       <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n      </defs>\n      <g transform=\"translate(223.031563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"297.943125\" xlink:href=\"#mfee9d7fa8d\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 0.8 -->\n      <defs>\n       <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n      </defs>\n      <g transform=\"translate(289.991563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"364.903125\" xlink:href=\"#mfee9d7fa8d\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 1.0 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(356.951563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m693064649b\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m693064649b\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0.0 -->\n      <g transform=\"translate(7.2 232.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m693064649b\" y=\"184.951219\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 0.2 -->\n      <g transform=\"translate(7.2 188.750437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m693064649b\" y=\"141.463219\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 0.4 -->\n      <g transform=\"translate(7.2 145.262437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m693064649b\" y=\"97.975219\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 0.6 -->\n      <g transform=\"translate(7.2 101.774437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m693064649b\" y=\"54.487219\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 0.8 -->\n      <g transform=\"translate(7.2 58.286437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m693064649b\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 1.0 -->\n      <g transform=\"translate(7.2 14.798437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"line2d_13\">\n    <path clip-path=\"url(#p5438ad13d4)\" d=\"M 30.103125 228.439219 \nL 30.208265 202.906665 \nL 30.215274 202.906665 \nL 30.320414 188.716811 \nL 30.327423 188.716811 \nL 30.432563 174.756566 \nL 30.439572 174.756566 \nL 30.544712 164.883367 \nL 30.551721 164.883367 \nL 30.656861 154.734636 \nL 30.66387 154.734636 \nL 30.76901 148.764794 \nL 30.776019 148.764794 \nL 30.881159 143.529702 \nL 30.888168 143.529702 \nL 30.993308 138.661985 \nL 31.000318 138.661985 \nL 31.105457 133.656503 \nL 31.126485 133.564659 \nL 31.231625 127.319286 \nL 31.238634 127.319286 \nL 31.343774 123.278163 \nL 31.357793 123.232241 \nL 31.462932 118.685977 \nL 31.469942 118.685977 \nL 31.575081 115.05815 \nL 31.596109 114.966306 \nL 31.69424 111.017027 \nL 31.708258 111.017027 \nL 31.813398 106.975903 \nL 31.820408 106.975903 \nL 31.925547 103.853217 \nL 31.932557 103.853217 \nL 32.037696 101.006061 \nL 32.058724 100.96014 \nL 32.163864 98.709968 \nL 32.184892 98.664047 \nL 32.283022 94.898454 \nL 32.31106 94.852532 \nL 32.416199 92.234986 \nL 32.437227 92.143143 \nL 32.535358 90.489956 \nL 32.563395 90.398112 \nL 32.661526 89.066378 \nL 32.689563 89.020456 \nL 32.794703 86.862129 \nL 32.801712 86.862129 \nL 32.906852 84.290505 \nL 32.92087 84.244583 \nL 33.004982 82.68324 \nL 33.047038 82.591396 \nL 33.138159 80.846366 \nL 33.180215 80.754522 \nL 33.257317 79.514632 \nL 33.313392 79.422788 \nL 33.418532 78.458429 \nL 33.43956 78.412507 \nL 33.53769 76.851164 \nL 33.558718 76.75932 \nL 33.663858 75.243899 \nL 33.705914 75.152055 \nL 33.804044 74.095852 \nL 33.867128 74.04993 \nL 33.972268 72.947806 \nL 34.000305 72.855962 \nL 34.105445 71.616072 \nL 34.112454 71.616072 \nL 34.217594 70.651713 \nL 34.224603 70.651713 \nL 34.329743 69.274057 \nL 34.336752 69.274057 \nL 34.441892 68.263776 \nL 34.469929 68.263776 \nL 34.56105 67.345339 \nL 34.582078 67.345339 \nL 34.687218 65.921762 \nL 34.708246 65.87584 \nL 34.806376 65.003324 \nL 34.827404 64.957402 \nL 34.932544 64.314496 \nL 34.939553 64.314496 \nL 35.037684 63.441981 \nL 35.107777 63.396059 \nL 35.212917 62.615388 \nL 35.219926 62.615388 \nL 35.311047 61.788794 \nL 35.339084 61.742872 \nL 35.444224 61.19181 \nL 35.451233 61.19181 \nL 35.549364 60.319295 \nL 35.577401 60.227451 \nL 35.682541 59.309014 \nL 35.724597 59.21717 \nL 35.829737 58.987561 \nL 35.885811 58.895717 \nL 35.990951 58.344655 \nL 36.018988 58.252811 \nL 36.082072 57.885436 \nL 36.159174 57.793593 \nL 36.264314 56.875155 \nL 36.292351 56.783312 \nL 36.397491 56.324093 \nL 36.4045 56.324093 \nL 36.50964 55.727109 \nL 36.537677 55.681187 \nL 36.642817 54.992359 \nL 36.663845 54.900515 \nL 36.747957 54.395375 \nL 36.783004 54.303531 \nL 36.888143 53.706547 \nL 36.92319 53.614703 \nL 37.02132 53.017719 \nL 37.042348 52.925876 \nL 37.12646 52.328891 \nL 37.196553 52.237048 \nL 37.301693 51.731907 \nL 37.343749 51.640064 \nL 37.43487 51.364532 \nL 37.483935 51.272689 \nL 37.582066 50.767548 \nL 37.610103 50.675704 \nL 37.694215 50.216486 \nL 37.757299 50.170564 \nL 37.84842 49.849111 \nL 37.876457 49.757267 \nL 37.960569 49.389892 \nL 38.002625 49.389892 \nL 38.093746 48.884752 \nL 38.128792 48.83883 \nL 38.226923 48.609221 \nL 38.275988 48.517377 \nL 38.374118 47.920393 \nL 38.409165 47.828549 \nL 38.514305 47.277487 \nL 38.591407 47.185643 \nL 38.696547 46.772347 \nL 38.745612 46.680503 \nL 38.829724 46.542737 \nL 38.948882 46.450894 \nL 39.025985 46.221284 \nL 39.236264 46.129441 \nL 39.299348 45.6243 \nL 39.397479 45.532456 \nL 39.502618 45.302847 \nL 39.58673 45.211003 \nL 39.656823 44.935472 \nL 39.79701 44.843628 \nL 39.881121 44.751785 \nL 40.014298 44.659941 \nL 40.091401 44.522175 \nL 40.147475 44.430332 \nL 40.210559 44.338488 \nL 40.287662 44.246644 \nL 40.392802 43.925191 \nL 40.483923 43.833348 \nL 40.589062 43.374129 \nL 40.757286 43.282285 \nL 40.813361 43.14452 \nL 40.911491 43.052676 \nL 40.988593 42.777145 \nL 41.086724 42.685301 \nL 41.191864 42.501614 \nL 41.353078 42.40977 \nL 41.458218 42.042395 \nL 41.528311 41.950551 \nL 41.626441 41.491333 \nL 41.752609 41.445411 \nL 41.857749 41.215802 \nL 41.983916 41.123958 \nL 42.075037 40.802505 \nL 42.138121 40.756583 \nL 42.243261 40.43513 \nL 42.313354 40.343286 \nL 42.397466 40.159599 \nL 42.432513 40.067755 \nL 42.537652 39.884068 \nL 42.677839 39.792224 \nL 42.76195 39.562615 \nL 42.944193 39.470771 \nL 43.049332 39.103396 \nL 43.105407 39.011552 \nL 43.196528 38.873787 \nL 43.371761 38.781943 \nL 43.371761 38.736021 \nL 43.561013 38.644178 \nL 43.652134 38.368646 \nL 43.729236 38.276803 \nL 43.764283 38.001272 \nL 43.918488 38.001272 \nL 43.99559 37.771662 \nL 44.318019 37.679819 \nL 44.325028 37.587975 \nL 44.472224 37.496131 \nL 44.570354 37.358366 \nL 44.766615 37.266522 \nL 44.766615 37.2206 \nL 45.01895 37.128756 \nL 45.110072 36.945069 \nL 45.159137 36.853225 \nL 45.201193 36.71546 \nL 45.341379 36.623616 \nL 45.439509 36.48585 \nL 45.614742 36.394007 \nL 45.684835 36.118475 \nL 45.747919 36.026632 \nL 45.754929 35.934788 \nL 46.007264 35.842944 \nL 46.084366 35.659257 \nL 46.371748 35.567413 \nL 46.476888 35.475569 \nL 46.532963 35.383726 \nL 46.596047 35.200038 \nL 46.76427 35.108194 \nL 46.848382 35.016351 \nL 47.016606 34.924507 \nL 47.100717 34.786741 \nL 47.444174 34.694898 \nL 47.48623 34.603054 \nL 47.626416 34.557132 \nL 47.647444 34.373445 \nL 47.899779 34.281601 \nL 47.976882 34.051992 \nL 48.138096 33.960148 \nL 48.208189 33.868304 \nL 48.29931 33.776461 \nL 48.397441 33.592773 \nL 48.649776 33.500929 \nL 48.740897 33.363164 \nL 48.909121 33.317242 \nL 48.979214 33.133555 \nL 49.112391 33.041711 \nL 49.203512 32.949867 \nL 49.343699 32.903945 \nL 49.406782 32.76618 \nL 49.553978 32.674336 \nL 49.631081 32.53657 \nL 49.84136 32.444727 \nL 49.925472 32.261039 \nL 50.072668 32.169196 \nL 50.093696 32.077352 \nL 50.317994 31.985508 \nL 50.423133 31.801821 \nL 50.745562 31.709977 \nL 50.850702 31.618133 \nL 50.892758 31.618133 \nL 50.920795 31.388524 \nL 51.17313 31.29668 \nL 51.27827 31.112993 \nL 51.334345 31.067071 \nL 51.418456 30.883383 \nL 51.614717 30.79154 \nL 51.628736 30.653774 \nL 51.951164 30.56193 \nL 51.951164 30.516009 \nL 52.371723 30.424165 \nL 52.413779 30.332321 \nL 52.553966 30.240477 \nL 52.638077 30.05679 \nL 52.722189 30.010868 \nL 52.827329 29.781259 \nL 52.988543 29.689415 \nL 53.037608 29.597571 \nL 53.296953 29.505728 \nL 53.374056 29.413884 \nL 53.514242 29.32204 \nL 53.514242 29.276118 \nL 53.976857 29.184275 \nL 54.074987 29.092431 \nL 54.55863 29.000587 \nL 54.586667 28.908744 \nL 54.810965 28.862822 \nL 54.853021 28.725056 \nL 55.049282 28.633212 \nL 55.049282 28.587291 \nL 55.841335 28.495447 \nL 55.876382 28.403603 \nL 56.016568 28.311759 \nL 56.079652 28.219916 \nL 56.226847 28.128072 \nL 56.324978 28.036228 \nL 56.61236 27.944385 \nL 56.7175 27.806619 \nL 57.0189 27.760697 \nL 57.0189 27.622932 \nL 57.446468 27.531088 \nL 57.544599 27.393322 \nL 58.014223 27.301479 \nL 58.014223 27.255557 \nL 58.399735 27.163713 \nL 58.490857 27.025947 \nL 59.135714 26.934104 \nL 59.233844 26.750416 \nL 59.962813 26.658572 \nL 59.962813 26.612651 \nL 60.285242 26.520807 \nL 60.285242 26.474885 \nL 60.782903 26.383041 \nL 60.782903 26.337119 \nL 61.441779 26.245276 \nL 61.441779 26.199354 \nL 61.890375 26.10751 \nL 61.890375 26.061588 \nL 62.198785 26.015666 \nL 62.198785 25.923823 \nL 62.948782 25.831979 \nL 62.948782 25.786057 \nL 63.250182 25.694213 \nL 63.250182 25.648292 \nL 63.68476 25.556448 \nL 63.68476 25.510526 \nL 64.539897 25.418682 \nL 64.539897 25.326839 \nL 65.142698 25.234995 \nL 65.142698 25.189073 \nL 65.570266 25.097229 \nL 65.570266 25.051307 \nL 66.411384 24.959464 \nL 66.488487 24.86762 \nL 67.014185 24.775776 \nL 67.014185 24.729854 \nL 68.016518 24.638011 \nL 68.016518 24.592089 \nL 68.437077 24.500245 \nL 68.437077 24.454323 \nL 70.091275 24.36248 \nL 70.091275 24.316558 \nL 70.778188 24.224714 \nL 70.869309 24.086948 \nL 71.030524 23.995105 \nL 71.058561 23.903261 \nL 72.306219 23.811417 \nL 72.306219 23.765495 \nL 72.91603 23.719574 \nL 72.951076 23.581808 \nL 73.350607 23.489964 \nL 73.350607 23.444042 \nL 73.869297 23.352199 \nL 73.869297 23.260355 \nL 74.338921 23.168511 \nL 74.338921 23.122589 \nL 74.794527 23.030746 \nL 74.794527 22.984824 \nL 75.369291 22.89298 \nL 75.446393 22.801136 \nL 77.32489 22.709293 \nL 77.32489 22.663371 \nL 77.724421 22.571527 \nL 77.766477 22.433762 \nL 78.130961 22.341918 \nL 78.130961 22.295996 \nL 79.161331 22.204152 \nL 79.161331 22.15823 \nL 79.694039 22.066387 \nL 79.729085 21.974543 \nL 80.19871 21.882699 \nL 80.254784 21.790855 \nL 80.969734 21.699012 \nL 80.969734 21.65309 \nL 81.236088 21.561246 \nL 81.313191 21.469402 \nL 81.684685 21.377559 \nL 81.684685 21.331637 \nL 82.168328 21.239793 \nL 82.168328 21.193871 \nL 83.121595 21.102028 \nL 83.142623 21.010184 \nL 84.859905 20.91834 \nL 84.859905 20.872418 \nL 87.137933 20.780575 \nL 87.137933 20.734653 \nL 88.336526 20.642809 \nL 88.336526 20.596887 \nL 89.591194 20.505043 \nL 89.591194 20.459122 \nL 90.109883 20.367278 \nL 90.109883 20.321356 \nL 91.252402 20.229512 \nL 91.287448 20.137669 \nL 91.841184 20.045825 \nL 91.841184 19.999903 \nL 92.864544 19.908059 \nL 92.864544 19.862137 \nL 93.979026 19.770294 \nL 93.979026 19.724372 \nL 94.672948 19.632528 \nL 94.672948 19.586606 \nL 95.899578 19.494763 \nL 95.899578 19.448841 \nL 96.656585 19.356997 \nL 96.656585 19.311075 \nL 99.817786 19.219231 \nL 99.817786 19.17331 \nL 101.72432 19.081466 \nL 101.72432 19.035544 \nL 104.177581 18.9437 \nL 104.177581 18.897778 \nL 106.147199 18.805935 \nL 106.147199 18.760013 \nL 106.623833 18.668169 \nL 106.623833 18.622247 \nL 108.249994 18.530404 \nL 108.249994 18.484482 \nL 109.203261 18.392638 \nL 109.203261 18.346716 \nL 110.429891 18.300794 \nL 110.429891 18.208951 \nL 112.364463 18.117107 \nL 112.364463 18.071185 \nL 114.256978 17.979341 \nL 114.256978 17.933419 \nL 116.899491 17.841576 \nL 116.899491 17.795654 \nL 118.770978 17.70381 \nL 118.770978 17.657888 \nL 120.439195 17.566045 \nL 120.439195 17.520123 \nL 123.579369 17.428279 \nL 123.579369 17.382357 \nL 125.443847 17.290513 \nL 125.541978 17.19867 \nL 127.26627 17.106826 \nL 127.26627 17.060904 \nL 128.647105 16.96906 \nL 128.647105 16.923138 \nL 130.869058 16.831295 \nL 130.946161 16.693529 \nL 131.815316 16.601685 \nL 131.815316 16.555764 \nL 134.527921 16.46392 \nL 134.527921 16.417998 \nL 136.609688 16.326154 \nL 136.609688 16.280232 \nL 139.112014 16.188389 \nL 139.112014 16.142467 \nL 143.941433 16.050623 \nL 143.941433 16.004701 \nL 149.892343 15.912858 \nL 149.892343 15.866936 \nL 154.069896 15.775092 \nL 154.069896 15.72917 \nL 156.270821 15.637326 \nL 156.270821 15.591405 \nL 159.221743 15.499561 \nL 159.221743 15.453639 \nL 162.319861 15.361795 \nL 162.319861 15.315873 \nL 165.845547 15.22403 \nL 165.845547 15.178108 \nL 169.210019 15.086264 \nL 169.210019 15.040342 \nL 174.305792 14.948499 \nL 174.305792 14.902577 \nL 177.053444 14.810733 \nL 177.053444 14.764811 \nL 181.798752 14.672967 \nL 181.798752 14.627046 \nL 189.572083 14.535202 \nL 189.572083 14.48928 \nL 199.987928 14.397436 \nL 199.987928 14.351514 \nL 204.046322 14.259671 \nL 204.053331 14.167827 \nL 208.083688 14.075983 \nL 208.083688 14.030061 \nL 210.389753 13.938218 \nL 210.389753 13.892296 \nL 225.740156 13.800452 \nL 225.740156 13.75453 \nL 231.929383 13.662687 \nL 231.929383 13.616765 \nL 236.870951 13.524921 \nL 236.870951 13.478999 \nL 246.740068 13.387155 \nL 246.740068 13.341234 \nL 252.410605 13.24939 \nL 252.410605 13.203468 \nL 257.779742 13.111624 \nL 257.779742 13.065702 \nL 261.501689 12.973859 \nL 261.501689 12.927937 \nL 265.812418 12.836093 \nL 265.812418 12.790171 \nL 279.831051 12.698328 \nL 279.831051 12.652406 \nL 295.896405 12.560562 \nL 295.896405 12.51464 \nL 301.616007 12.422796 \nL 301.616007 12.376875 \nL 307.349628 12.285031 \nL 307.349628 12.239109 \nL 315.922022 12.147265 \nL 315.922022 12.101343 \nL 323.723391 12.0095 \nL 323.723391 11.963578 \nL 336.718664 11.871734 \nL 336.718664 11.825812 \nL 344.162558 11.733968 \nL 344.162558 11.688047 \nL 347.639179 11.596203 \nL 347.639179 11.550281 \nL 350.688231 11.458437 \nL 350.688231 11.412515 \nL 353.940554 11.320672 \nL 353.940554 11.27475 \nL 360.227911 11.182906 \nL 360.227911 11.136984 \nL 364.868078 11.045141 \nL 364.868078 10.999219 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 30.103125 228.439219 \nL 30.103125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 364.903125 228.439219 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 30.103125 228.439219 \nL 364.903125 228.439219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 30.103125 10.999219 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p5438ad13d4\">\n   <rect height=\"217.44\" width=\"334.8\" x=\"30.103125\" y=\"10.999219\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "fpr, tpr, thresholds  = roc_curve(y_train_is_5, y_scores)\n",
    "\n",
    "plt.plot(fpr, tpr)\n",
    "plt.axis((0,1,0,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "0.9677943327565848"
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import roc_auc_score\n",
    "# calculate the area of \n",
    "roc_auc_score(y_train_is_5, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "forest_clf = RandomForestClassifier(n_estimators=10)\n",
    "y_probas_forest = cross_val_predict(forest_clf, X_train, y_train_is_5, cv = 3, n_jobs= -1, method= 'predict_proba')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0.9, 0.1],\n       [1. , 0. ],\n       [0.9, 0.1],\n       ...,\n       [1. , 0. ],\n       [1. , 0. ],\n       [1. , 0. ]])"
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_probas_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(0, 1, 0, 1)"
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"252.317344pt\" version=\"1.1\" viewBox=\"0 0 380.054687 252.317344\" width=\"380.054687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 252.317344 \nL 380.054687 252.317344 \nL 380.054687 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 30.103125 228.439219 \nL 364.903125 228.439219 \nL 364.903125 10.999219 \nL 30.103125 10.999219 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m2b31c0998b\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m2b31c0998b\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0.0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       <path d=\"M 10.6875 12.40625 \nL 21 12.40625 \nL 21 0 \nL 10.6875 0 \nz\n\" id=\"DejaVuSans-46\"/>\n      </defs>\n      <g transform=\"translate(22.151563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"97.063125\" xlink:href=\"#m2b31c0998b\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 0.2 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(89.111563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"164.023125\" xlink:href=\"#m2b31c0998b\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 0.4 -->\n      <defs>\n       <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n      </defs>\n      <g transform=\"translate(156.071563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"230.983125\" xlink:href=\"#m2b31c0998b\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 0.6 -->\n      <defs>\n       <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n      </defs>\n      <g transform=\"translate(223.031563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"297.943125\" xlink:href=\"#m2b31c0998b\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 0.8 -->\n      <defs>\n       <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n      </defs>\n      <g transform=\"translate(289.991563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"364.903125\" xlink:href=\"#m2b31c0998b\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 1.0 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(356.951563 243.037656)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"me56128ddac\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#me56128ddac\" y=\"228.439219\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0.0 -->\n      <g transform=\"translate(7.2 232.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#me56128ddac\" y=\"184.951219\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 0.2 -->\n      <g transform=\"translate(7.2 188.750437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#me56128ddac\" y=\"141.463219\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 0.4 -->\n      <g transform=\"translate(7.2 145.262437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#me56128ddac\" y=\"97.975219\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 0.6 -->\n      <g transform=\"translate(7.2 101.774437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#me56128ddac\" y=\"54.487219\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 0.8 -->\n      <g transform=\"translate(7.2 58.286437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#me56128ddac\" y=\"10.999219\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 1.0 -->\n      <g transform=\"translate(7.2 14.798437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"line2d_13\">\n    <path clip-path=\"url(#p44ef36ab82)\" d=\"M 30.103125 228.439219 \nL 30.103125 170.853208 \nL 30.124153 126.17124 \nL 30.15219 92.694205 \nL 30.25733 69.916963 \nL 30.509665 51.410454 \nL 31.18256 39.424849 \nL 32.360125 27.622932 \nL 36.040016 20.872418 \nL 46.841373 15.821014 \nL 85.658967 12.51464 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 30.103125 228.439219 \nL 30.103125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 364.903125 228.439219 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 30.103125 228.439219 \nL 364.903125 228.439219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 30.103125 10.999219 \nL 364.903125 10.999219 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p44ef36ab82\">\n   <rect height=\"217.44\" width=\"334.8\" x=\"30.103125\" y=\"10.999219\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_score_forest = y_probas_forest[:,1]\n",
    "fpr_forest, tpr_forest, thresholds_forest = roc_curve(y_train_is_5, y_score_forest)\n",
    "plt.plot(fpr_forest, tpr_forest)\n",
    "plt.axis((0,1,0,1)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "0.9926103345411046"
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "roc_auc_score(y_train_is_5, y_score_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "(0.9870755195134313, 0.82259767687434)"
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_predict_forest = cross_val_predict(forest_clf, X_train, y_train_is_5, cv = 10, n_jobs= -1)\n",
    "(\n",
    "    precision_score(y_train_is_5, y_predict_forest),\n",
    "    recall_score(y_train_is_5, y_predict_forest)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([8])"
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_model.fit(X_train, y_train)\n",
    "sgd_model.predict([X_train[0]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([6])"
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.multiclass import OneVsOneClassifier\n",
    "\n",
    "ovo_clf = OneVsOneClassifier(SGDClassifier(max_iter = 5, tol = -np.infty))\n",
    "ovo_clf.fit(X_train, y_train)\n",
    "ovo_clf.predict([X_train[0]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "6"
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "45"
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(ovo_clf.estimators_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([6])"
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "forest_clf.fit(X_train, y_train)\n",
    "forest_clf.predict([X_train[0]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0. , 0. , 0. , 0. , 0. , 0. , 0.7, 0. , 0.2, 0.1]])"
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "forest_clf.predict_proba([X_train[0]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([0.8788    , 0.87708571, 0.88914286])"
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(sgd_model, X_train, y_train, cv= 3,  n_jobs= -1, scoring='accuracy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([0.89980952, 0.90457143, 0.90352381, 0.90257143, 0.90666667])"
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler \n",
    "scaler = StandardScaler()\n",
    "X_train_scaled = scaler.fit_transform(X_train.astype(np.float64))\n",
    "cross_val_score(sgd_model, X_train_scaled, y_train, cv= 5, n_jobs= -1, scoring='accuracy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([[4927,    0,   13,    9,    6,   35,   26,    4,  156,    1],\n       [   0, 5645,   35,   20,    4,   32,    4,    5,  154,    9],\n       [  20,   16, 4656,   70,   61,   20,   63,   37,  288,   11],\n       [  17,   17,  101, 4625,    1,  170,   24,   42,  297,   62],\n       [   9,   13,   49,    7, 4593,    9,   27,   18,  239,  154],\n       [  22,   13,   21,  151,   58, 3934,   75,   16,  385,   60],\n       [  25,   16,   47,    3,   37,   73, 4837,    3,  116,    0],\n       [  20,    8,   51,   14,   45,    8,    2, 4998,  130,  194],\n       [  15,   54,   43,   68,    5,  107,   32,   10, 4736,   49],\n       [  17,   17,   21,   56,  116,   36,    1,  145,  250, 4559]])"
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_pred = cross_val_predict(sgd_model , X_train_scaled, y_train, cv = 3, n_jobs = -1)\n",
    "confusion_mx = confusion_matrix(y_train,y_train_pred)\n",
    "confusion_mx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "<matplotlib.image.AxesImage at 0x7f4b6bb31400>"
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"257.778125pt\" version=\"1.1\" viewBox=\"0 0 250.9625 257.778125\" width=\"250.9625pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 257.778125 \nL 250.9625 257.778125 \nL 250.9625 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 20.5625 247.078125 \nL 243.7625 247.078125 \nL 243.7625 23.878125 \nL 20.5625 23.878125 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p8a09e6c4ec)\">\n    <image height=\"224\" id=\"image8490824301\" transform=\"scale(1 -1)translate(0 -224)\" width=\"224\" x=\"20.5625\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAAaLWrhAAAABHNCSVQICAgIfAhkiAAAA/9JREFUeJzt3DFK3HsUhuEzzmiarCGNTYpA3LmLyAJiJekEd2Cnwcykvd2FC+e+CM+zgI8/cd78unOYmcswMzNXV1dr28fjcWX3/f19Zfdy2ftZ3NzcrOxeX1+v7M7M/PjxY2V37xcH/CsBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAihwyxdRdu8MLZ1sWvzm//8+bOyezqdVna3vndm7+/3+Pi4sjsz8+3bt5VdLyCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIobWzhJu2zgeez+eV3ZmP+c1bnp+fV3Zvb29Xdmdmjsfjyq4XEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCp8PhsDJ8uXy4Y2urtv49tq51/fr1a2V3ZubLly8ru9fX1yu7MzOvr68ru15ACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEKnj3g+8Hw+r+ze3Nys7M7MvL+/r+ze39+v7H79+nVld9Pnz5/Xtl9eXlZ2vYAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEDrVH/BfXF3t/L/x+/fvld2ZmYeHh5Xdu7u7ld3D4bCyu+nt7W1t+3TaScULCCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghV9H+4efPnyu7MzPfv39f2f306dPK7uaFuK2La8fjcWV3Zub19XVl1wsIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQuhDniXcOh94d3e3sjuzd0rx7e1tZXfre2dmLpfL2vaW8/m8susFhJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoTQ2lW0zctXWxe7PuK1rsPhsLK7dQVs09aFuE1eQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCp6enp5XhrXN5/D82/35b5x8/4m/OCwghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIob8z1m8E80rL2gAAAABJRU5ErkJggg==\" y=\"-23.078125\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m9b0eb4daf1\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"31.7225\" xlink:href=\"#m9b0eb4daf1\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_2\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 -3.5 \n\" id=\"m6762f77189\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"31.7225\" xlink:href=\"#m6762f77189\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(28.54125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"76.3625\" xlink:href=\"#m9b0eb4daf1\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"76.3625\" xlink:href=\"#m6762f77189\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 2 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(73.18125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"121.0025\" xlink:href=\"#m9b0eb4daf1\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"121.0025\" xlink:href=\"#m6762f77189\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 4 -->\n      <defs>\n       <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n      </defs>\n      <g transform=\"translate(117.82125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_7\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"165.6425\" xlink:href=\"#m9b0eb4daf1\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"165.6425\" xlink:href=\"#m6762f77189\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 6 -->\n      <defs>\n       <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n      </defs>\n      <g transform=\"translate(162.46125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"210.2825\" xlink:href=\"#m9b0eb4daf1\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"210.2825\" xlink:href=\"#m6762f77189\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 8 -->\n      <defs>\n       <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n      </defs>\n      <g transform=\"translate(207.10125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_11\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m955ba9f2e2\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#m955ba9f2e2\" y=\"35.038125\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 0 -->\n      <g transform=\"translate(7.2 38.837344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#m955ba9f2e2\" y=\"79.678125\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 2 -->\n      <g transform=\"translate(7.2 83.477344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_13\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#m955ba9f2e2\" y=\"124.318125\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 4 -->\n      <g transform=\"translate(7.2 128.117344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_14\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#m955ba9f2e2\" y=\"168.958125\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 6 -->\n      <g transform=\"translate(7.2 172.757344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_15\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#m955ba9f2e2\" y=\"213.598125\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 8 -->\n      <g transform=\"translate(7.2 217.397344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 20.5625 247.078125 \nL 20.5625 23.878125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 243.7625 247.078125 \nL 243.7625 23.878125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 20.5625 247.078125 \nL 243.7625 247.078125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 20.5625 23.878125 \nL 243.7625 23.878125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p8a09e6c4ec\">\n   <rect height=\"223.2\" width=\"223.2\" x=\"20.5625\" y=\"23.878125\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 288x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(confusion_mx, cmap = plt.cm.gray)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "<matplotlib.image.AxesImage at 0x7f4b6baeec10>"
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"257.778125pt\" version=\"1.1\" viewBox=\"0 0 250.9625 257.778125\" width=\"250.9625pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 257.778125 \nL 250.9625 257.778125 \nL 250.9625 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 20.5625 247.078125 \nL 243.7625 247.078125 \nL 243.7625 23.878125 \nL 20.5625 23.878125 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#pa825d2493f)\">\n    <image height=\"224\" id=\"image0b870e0624\" transform=\"scale(1 -1)translate(0 -224)\" width=\"224\" x=\"20.5625\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAAaLWrhAAAABHNCSVQICAgIfAhkiAAABLxJREFUeJzt3DFqlWsUheF1kj+FhkQUIYpop4hVRhBrR5DOATgS2wzCQpyFYGUjYqUgYmGTziQQj0m8U7he2CwuPM8AFj+c8/J1e3X9+vU/+Z/Z2NgY2b19+/bIbpI8fPhwZPfDhw8ju8fHxyO7SXJ4eDiy+/Tp05HdJHnx4sXI7sw/GfhXBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQpEAoUiAUCRAKBIgFAkQigQIRQKEIgFCkQChaHXt2rWRq2h7e3sTs0mS9Xo9sru7uzuymyRfvnwZ2T04OBjZ/fjx48hukpycnIzsTv0vkuTBgwcju15AKBIgFAkQigQIRQKEIgFCkQChSIBQJEAoEiAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQtFqe3t75Czhr1+/JmaTJHfv3h3ZPT4+HtlNkps3b47sTn3z5eXlyG6S/Pkz8pfLs2fPRnaT5NGjRyO7XkAoEiAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQpEAoUiAUCRAKBIgFAkQigQIRQKEomVZlpHhq6urkd1k7qrW5CW3qStjjx8/Htn99OnTyG6SrFarkd3JS25HR0cju15AKBIgFAkQigQIRQKEIgFCkQChSIBQJEAoEiAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQtFqd3d35Mbfer2emE2SbG1tjeweHh6O7CbJ27dvR3Y/f/48sru/vz+ym8x989nZ2chuMnf+0QsIRQKEIgFCkQChSIBQJEAoEiAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQpEAoUiAULTa2toauYq2sTHX9t7e3sjujx8/RnaT5OLiYmR36kLc9vb2yG6S/P79e2T35cuXI7tJ8v79+5FdLyAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQpEAoUiAUCRAKBIgFAkQigQIRQKEIgFC0bIsS/sb/tr9+/dHdr9//z6yO+n58+cju2/evBnZTZKdnZ2R3Xv37o3sJsnR0dHIrhcQigQIRQKEIgFCkQChSIBQJEAoEiAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQpEAoUiAULRsbm6ODF9eXo7sJsm7d+9Gdp88eTKymyTr9Xpk9/Xr1yO7d+7cGdlNkp8/f47sXl1djewmcycrvYBQJEAoEiAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQpEAoUiAUCRAKBIgFAkQigQIRcvp6Wn7G/7arVu3Rna/ffs2spsk5+fnI7s3btwY2f369evI7qRXr16NbU9dXPMCQpEAoUiAUCRAKBIgFAkQigQIRQKEIgFCkQChSIBQJEAoEiAUCRCKBAhFAoQiAUKRAKFIgFAkQCgSIBQJEIqW9gf8F2dnZyO7U6fnkmS1Wo3sLsvMT7izszOymyQnJycju5PffHFxMbLrBYQiAUKRAKFIgFAkQCgSIBQJEIoECEUChCIBQpEAoUiAUCRAKBIgFAkQigQIRQKEIgFCkQChSIBQJEAo+ge+J5eNkJiUfgAAAABJRU5ErkJggg==\" y=\"-23.078125\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m35601fc355\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"31.7225\" xlink:href=\"#m35601fc355\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_2\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 -3.5 \n\" id=\"m889ffce977\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"31.7225\" xlink:href=\"#m889ffce977\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(28.54125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"76.3625\" xlink:href=\"#m35601fc355\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"76.3625\" xlink:href=\"#m889ffce977\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 2 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(73.18125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"121.0025\" xlink:href=\"#m35601fc355\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"121.0025\" xlink:href=\"#m889ffce977\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 4 -->\n      <defs>\n       <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n      </defs>\n      <g transform=\"translate(117.82125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_7\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"165.6425\" xlink:href=\"#m35601fc355\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"165.6425\" xlink:href=\"#m889ffce977\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 6 -->\n      <defs>\n       <path d=\"M 33.015625 40.375 \nQ 26.375 40.375 22.484375 35.828125 \nQ 18.609375 31.296875 18.609375 23.390625 \nQ 18.609375 15.53125 22.484375 10.953125 \nQ 26.375 6.390625 33.015625 6.390625 \nQ 39.65625 6.390625 43.53125 10.953125 \nQ 47.40625 15.53125 47.40625 23.390625 \nQ 47.40625 31.296875 43.53125 35.828125 \nQ 39.65625 40.375 33.015625 40.375 \nz\nM 52.59375 71.296875 \nL 52.59375 62.3125 \nQ 48.875 64.0625 45.09375 64.984375 \nQ 41.3125 65.921875 37.59375 65.921875 \nQ 27.828125 65.921875 22.671875 59.328125 \nQ 17.53125 52.734375 16.796875 39.40625 \nQ 19.671875 43.65625 24.015625 45.921875 \nQ 28.375 48.1875 33.59375 48.1875 \nQ 44.578125 48.1875 50.953125 41.515625 \nQ 57.328125 34.859375 57.328125 23.390625 \nQ 57.328125 12.15625 50.6875 5.359375 \nQ 44.046875 -1.421875 33.015625 -1.421875 \nQ 20.359375 -1.421875 13.671875 8.265625 \nQ 6.984375 17.96875 6.984375 36.375 \nQ 6.984375 53.65625 15.1875 63.9375 \nQ 23.390625 74.21875 37.203125 74.21875 \nQ 40.921875 74.21875 44.703125 73.484375 \nQ 48.484375 72.75 52.59375 71.296875 \nz\n\" id=\"DejaVuSans-54\"/>\n      </defs>\n      <g transform=\"translate(162.46125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"210.2825\" xlink:href=\"#m35601fc355\" y=\"247.078125\"/>\n      </g>\n     </g>\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"210.2825\" xlink:href=\"#m889ffce977\" y=\"23.878125\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 8 -->\n      <defs>\n       <path d=\"M 31.78125 34.625 \nQ 24.75 34.625 20.71875 30.859375 \nQ 16.703125 27.09375 16.703125 20.515625 \nQ 16.703125 13.921875 20.71875 10.15625 \nQ 24.75 6.390625 31.78125 6.390625 \nQ 38.8125 6.390625 42.859375 10.171875 \nQ 46.921875 13.96875 46.921875 20.515625 \nQ 46.921875 27.09375 42.890625 30.859375 \nQ 38.875 34.625 31.78125 34.625 \nz\nM 21.921875 38.8125 \nQ 15.578125 40.375 12.03125 44.71875 \nQ 8.5 49.078125 8.5 55.328125 \nQ 8.5 64.0625 14.71875 69.140625 \nQ 20.953125 74.21875 31.78125 74.21875 \nQ 42.671875 74.21875 48.875 69.140625 \nQ 55.078125 64.0625 55.078125 55.328125 \nQ 55.078125 49.078125 51.53125 44.71875 \nQ 48 40.375 41.703125 38.8125 \nQ 48.828125 37.15625 52.796875 32.3125 \nQ 56.78125 27.484375 56.78125 20.515625 \nQ 56.78125 9.90625 50.3125 4.234375 \nQ 43.84375 -1.421875 31.78125 -1.421875 \nQ 19.734375 -1.421875 13.25 4.234375 \nQ 6.78125 9.90625 6.78125 20.515625 \nQ 6.78125 27.484375 10.78125 32.3125 \nQ 14.796875 37.15625 21.921875 38.8125 \nz\nM 18.3125 54.390625 \nQ 18.3125 48.734375 21.84375 45.5625 \nQ 25.390625 42.390625 31.78125 42.390625 \nQ 38.140625 42.390625 41.71875 45.5625 \nQ 45.3125 48.734375 45.3125 54.390625 \nQ 45.3125 60.0625 41.71875 63.234375 \nQ 38.140625 66.40625 31.78125 66.40625 \nQ 25.390625 66.40625 21.84375 63.234375 \nQ 18.3125 60.0625 18.3125 54.390625 \nz\n\" id=\"DejaVuSans-56\"/>\n      </defs>\n      <g transform=\"translate(207.10125 14.798438)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_11\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"mbd6342d0b7\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#mbd6342d0b7\" y=\"35.038125\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 0 -->\n      <g transform=\"translate(7.2 38.837344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#mbd6342d0b7\" y=\"79.678125\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 2 -->\n      <g transform=\"translate(7.2 83.477344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_13\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#mbd6342d0b7\" y=\"124.318125\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 4 -->\n      <g transform=\"translate(7.2 128.117344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-52\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_14\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#mbd6342d0b7\" y=\"168.958125\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 6 -->\n      <g transform=\"translate(7.2 172.757344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-54\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_15\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"20.5625\" xlink:href=\"#mbd6342d0b7\" y=\"213.598125\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 8 -->\n      <g transform=\"translate(7.2 217.397344)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-56\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 20.5625 247.078125 \nL 20.5625 23.878125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 243.7625 247.078125 \nL 243.7625 23.878125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 20.5625 247.078125 \nL 243.7625 247.078125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 20.5625 23.878125 \nL 243.7625 23.878125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"pa825d2493f\">\n   <rect height=\"223.2\" width=\"223.2\" x=\"20.5625\" y=\"23.878125\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 288x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "row_sums = confusion_mx.sum(axis = 1, keepdims = True)\n",
    "norm_conf_mx = confusion_mx / row_sums\n",
    "np.fill_diagonal(norm_conf_mx, 0)\n",
    "plt.matshow(norm_conf_mx, cmap = plt.cm.gray)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([[5177],\n       [5908],\n       [5242],\n       [5356],\n       [5118],\n       [4735],\n       [5157],\n       [5470],\n       [5119],\n       [5218]])"
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "row_sums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n                     metric_params=None, n_jobs=None, n_neighbors=5, p=2,\n                     weights='uniform')"
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "y_train_large = (y_train >= 7)\n",
    "y_train_odd = (y_train %2==1)\n",
    "y_multi_label  = np.c_[y_train_large, y_train_odd]\n",
    "\n",
    "knn_clf = KNeighborsClassifier()\n",
    "knn_clf.fit(X_train, y_multi_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([[False, False]])"
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn_clf.predict([X_train[0]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "array([ 13.,   6.,  62.,  19.,  50.,  78.,  98.,  92.,  84.,  13.,   1.,\n        82.,  91.,  84.,  19.,  95.,  78.,  20.,  78.,  27.,  75.,  48.,\n        15.,  41.,  36.,  92.,  97.,  67.,  70.,  37.,   8.,   5.,  66.,\n         8.,  32.,  12.,  85.,   3.,  24.,  61.,  85.,  98.,  68.,   9.,\n        46.,  31.,  57.,  13.,  71.,  75.,  91.,  41.,  84.,  58.,  96.,\n        94.,  21.,  19.,  59.,  76.,  89.,  88.,  28.,  54.,  71.,  72.,\n        16.,  17.,  27.,  77.,  93.,  46.,  67.,  19.,  26.,   7.,  56.,\n        89.,  39.,  73.,  18.,  37.,   3.,  34.,  51.,  92.,  71.,  43.,\n        32.,  71.,  67.,  91.,   9.,   6.,  49.,  56.,   4.,  54.,  60.,\n        55.,   3.,  85.,  74.,  70.,  41.,  92.,  24.,  68.,   3.,  43.,\n        25.,  41.,  58.,  42.,  26.,  46.,  45.,  20.,  97.,  11.,  92.,\n        15.,  79.,  76.,  65.,  71.,  54.,  54.,   3., 174., 268., 293.,\n       291.,  57.,  10.,  68.,  50.,  57.,   0.,  92.,  74.,   3.,  63.,\n        87.,  49.,  52.,  81.,  58.,   7.,  51.,  49.,  29.,   6.,  67.,\n        10., 107., 207., 338., 279., 348., 270.,  51.,  87.,  36.,  84.,\n        49.,   1.,  55.,  47.,  66.,  20.,  99.,  24.,  41.,  44.,   6.,\n        20.,  44.,  55.,  44.,  46.,  62., 201., 290., 291., 205., 179.,\n       298., 238., 111.,  26.,  41.,  11.,   9.,  47.,  21.,  74.,  80.,\n        81.,  23.,  32.,  65.,  20.,  10.,  38.,   6.,  25.,   2.,  82.,\n       212., 318., 330., 215.,  87., 138., 330., 115.,  67.,   2.,  78.,\n        70.,  32.,  65.,  44.,  50.,   2.,  92.,  91.,   2.,  37.,  43.,\n        99.,   5.,  76.,  84.,  66., 208., 253., 336.,  70.,  38.,  97.,\n       234., 149.,  75.,  22.,  32.,  26.,  85.,  38.,  83.,  38.,   5.,\n        92.,  87.,  18.,  55.,  93.,  31.,  64.,  64.,  68.,  78., 163.,\n       317., 320., 120.,  56.,  43., 168., 143.,  14.,   0.,  85.,  22.,\n        70.,  99.,   3.,  71.,  85.,  93.,  10.,  79.,  65.,  89.,  75.,\n        31.,  96.,  25.,   9., 183., 281., 336., 174.,  83.,  30., 138.,\n       111.,  43.,  20.,  74.,  76.,  19.,  52.,  39.,  90.,  85.,  35.,\n        52.,  55.,  97.,  12.,  84.,  52.,  91.,  99.,  94.,  99., 229.,\n       320., 146.,   4.,   6.,  50.,  69.,  76.,   7.,  81.,  22.,  40.,\n        18.,  20.,  83.,  62.,  43.,  83.,   5.,  59.,  28.,  41.,  64.,\n        17.,  56.,  66.,  61., 242., 282., 257.,  61.,  64.,  70.,  53.,\n        46.,  70.,   9.,  10.,  18.,  97.,  93.,  72.,  69.,  98.,  15.,\n        50.,  94.,  25.,  90.,  89.,  14.,  39.,  27.,   8.,  33., 240.,\n       326., 189.,  32.,  18.,  77.,  32.,  64., 109.,  51.,  72.,  67.,\n        68.,  41.,  51.,  62.,  18.,  51.,  59.,  57.,  63.,  29.,  39.,\n        29.,  29.,  35.,  41., 116., 270., 308.,  92.,  43., 120., 248.,\n       282., 259., 276., 287., 199.,  90.,  82.,  27.,  19.,  36.,  25.,\n        99.,   8.,  67.,  18.,  46.,  16.,  81.,   6.,  16.,  27., 181.,\n       316., 208.,  91., 236., 274., 260., 284., 179., 216., 215., 347.,\n       271.,  71.,  67.,  86.,  72.,  15.,  38.,  59.,  51.,  37.,  16.,\n        44.,  61.,  55.,  43.,  74., 308., 340., 277., 289., 302., 166.,\n        92.,  43.,  52.,  39.,  22., 189., 337., 205.,   2.,  35.,  75.,\n        92.,  97.,  98.,  11.,  68.,   0.,  62.,  13.,  66.,  98.,  86.,\n       151., 271., 316., 297., 188.,  26.,  45.,  19.,  82.,  55.,  85.,\n        53., 238., 247.,  39.,  74.,  52.,  13.,  24.,  41.,  90.,  52.,\n        24.,  45.,  33.,  91.,  71.,  26., 206., 306., 341., 173.,  67.,\n        42.,  50.,  83.,  58.,  76.,  53.,  93., 267., 265.,  72.,  76.,\n        58.,  13.,  77.,  97.,  66.,  46.,  70.,  13.,  76.,  49.,  40.,\n        73., 199., 351., 194.,  20.,  20.,  65.,  23.,  21.,   4.,  16.,\n       115., 289., 235., 119.,  91.,  33.,  31.,  34.,  70.,  73.,  79.,\n        92.,  70.,  81.,  62.,  48.,  10.,  84., 132., 320., 269.,  96.,\n        69.,  13.,  23.,  60.,  19., 211., 247., 328.,  87.,  49.,  92.,\n        19.,  42.,   6.,  91.,  38.,   7.,  74.,  57.,  60.,  83.,  99.,\n        98.,  40.,  71., 314., 260., 122.,  97.,  55., 112., 220., 298.,\n       335., 198., 114.,  26.,  23.,   9.,  85.,  59.,  16.,  73.,  89.,\n        54.,  59.,  86.,  62.,  24.,  47.,  80.,  53.,  89., 193., 346.,\n       285., 252., 325., 250., 279., 339., 199.,  60.,  31.,  26.,  40.,\n        77.,  30.,  18.,   8.,  64.,  55.,  41.,  14.,  94.,  18.,  68.,\n        26.,  83.,  85.,  59.,  82., 233., 304., 280., 306., 273., 185.,\n        75.,  21.,   9.,  12.,  18.,  76.,  45.,  25.,  86.,  87.,  60.,\n        86.,  40.,  17.,  51.,  88.,  35.,  78.,  13.,   1.,  33.,  16.,\n        51.,  19.,  98.,  26.,  53.,  46.,  29.,  43.,  28.,  16.,  14.,\n        32.,  26.,  84.,  16.,  87.,  85.,  98.,  52.,  13.,  47.,  78.,\n        49.,  86.,   3.,  75.,  89.,  37.,  67.,  62.,  11.,  87.,  64.,\n        73.,  47.,  75.,  26.,  82.,  31.,  69.,  32.,   5.,  58.,  13.,\n        18.,  45.,  46.,  45.,  53.,  99.,  96.,   4.,  38.,  14.,  89.,\n        79.,  32.,   9.,  29.,   2.,  36.,   1.,  33.,  34.,  62.,  72.,\n        25.,  32.,  88.,  57.,  26.,  74.,  33.,  39.,  23.,  68.,  84.,\n        35.,  98.,  65.,  40.,  92.,  28.,  49.,  33.,  87.,  29.,  40.,\n        51.,  15.,  65.,  80.,   5.,  31.,  41.,  30.,  33.,  53.,  79.,\n        89.,  10.,  24.])"
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "noise = np.random.randint(0,100, (len(X_train), 784))\n",
    "X_train_mod = X_train+ noise\n",
    "X_train_mod[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_mod = X_train\n",
    "y_test_mod = X_test\n",
    "X_test_mod = X_test + np.random.randint(0,100,(len(X_test), 784))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n                     metric_params=None, n_jobs=None, n_neighbors=5, p=2,\n                     weights='uniform')"
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn_clf.fit(X_train_mod, y_train_mod)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 251.565 248.518125\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 251.565 248.518125 \nL 251.565 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \nL 244.365 7.2 \nL 26.925 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p0fd281155f)\">\n    <image height=\"218\" id=\"image3bc017178d\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAANoAAADaCAYAAADAHVzbAAAABHNCSVQICAgIfAhkiAAABQlJREFUeJzt3T9LlX0cx3G1O2qQcHOJHoEPoKUIBCEcJJwKInAQbIimBqGhQQpqCREjiBaRWqKmfAAOPgCXRq12ISRw8DTf4PU9cJ36eP68XuuHy3Nxw7sf+ON4j3c6nc4Y8E9NnPcLwCgQGgQIDQKEBgFCgwChQYDQIEBoECA0CBAaBAgNAoQGAUKDAKFBgNAgQGgQIDQIEBoECA0ChAYBQoMAoUGA0CBAaBAgNAgQGgQIDQKEBgFCgwChQYDQIEBoECA0CBAaBAgNAoQGAUKDAKFBwH/n/QKjaHV1tdxfvHjxTz9/bW2tcXv06FH57OXLl8v9woULrd5p2DnRIEBoECA0CBAaBAgNAoQGAUKDgPFOp9M575cYRhMTzf+GnZ6e9vSz9/f3y/3nz5/lfvv27daf/fbt23K/f/9+uV+6dKn1Zw8yJxoECA0ChAYBQoMAoUGA0CBAaBDg+2gtVfdkY2O935VVZmZmetqPj48bt5cvX5bPLi8vl/v379/L/dmzZ+U+rJxoECA0CBAaBAgNAoQGAUKDAF+TadDt1/cPHjwo9/fv3//N1+kbnz59KvfFxcVy//XrV+M2OTnZ6p0GgRMNAoQGAUKDAKFBgNAgQGgQIDQIcI/W4Dy/BjPIuv1329nZadzm5ub+9uv0DScaBAgNAoQGAUKDAKFBgNAgQGgQ4M/NteSe7Wy/f/8u9w8fPoTepL840SBAaBAgNAgQGgQIDQKEBgFCg4CRvUfr9Wt4nz9/Lvfr1683bnt7ez19dj/b2toq91u3bmVepM840SBAaBAgNAgQGgQIDQKEBgEj++v98fHxcp+dnS33hYWFf/bZr1+/LvfHjx+Xe7ev6JycnDRu29vb5bNLS0vl3s3h4WFPzw8qJxoECA0ChAYBQoMAoUGA0CBAaBAwsvdo3Vy8eLHcu92FHR0dNW5Xrlwpnz0+Pi73g4ODcu/2bisrK43bmzdvyme7+fbtW7lfvXq1p58/qJxoECA0CBAaBAgNAoQGAUKDAKFBwHin17+7NqQ+fvxY7nfv3i33Uf3fNnE2JxoECA0ChAYBQoMAoUGA0CBAaBDgHq2liYn2/0a5Yxs9TjQIEBoECA0ChAYBQoMAoUGA0CDAPVpLX79+Lff5+fnWP9s92/BxokGA0CBAaBAgNAgQGgQIDQL8er+lHz9+lPv6+nrj9vTp0/LZycnJVu9E/3KiQYDQIEBoECA0CBAaBAgNAoQGAe7RzsGrV6/K/cmTJ+XuazSDx4kGAUKDAKFBgNAgQGgQIDQIEBoEuEc7B92+y3bt2rWefr57tv7jRIMAoUGA0CBAaBAgNAgQGgQIDQLco/WhL1++lPudO3fK/ebNm+W+urrauM3NzZXP0o4TDQKEBgFCgwChQYDQIEBoECA0CHCPNoA2NzfL/eHDh+U+NTXVuG1sbJTP3rt3r9w5mxMNAoQGAUKDAKFBgNAgQGgQ4Nf7Q2h/f7/ct7e3G7fnz5+Xz964caPcd3d3y70yzH8mz4kGAUKDAKFBgNAgQGgQIDQIEBoEuEfjf7rdg3W7R5ufny/3d+/eNW7T09Pls4PMiQYBQoMAoUGA0CBAaBAgNAgQGgS4R4MAJxoECA0ChAYBQoMAoUGA0CBAaBAgNAgQGgQIDQKEBgFCgwChQYDQIEBoECA0CBAaBAgNAoQGAUKDAKFBgNAgQGgQIDQIEBoECA0ChAYBQoMAoUGA0CDgDxgt3MqGrHqHAAAAAElFTkSuQmCC\" y=\"-6.64\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m344552fcf8\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.807857\" xlink:href=\"#m344552fcf8\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(27.626607 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"69.636429\" xlink:href=\"#m344552fcf8\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 5 -->\n      <defs>\n       <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n      </defs>\n      <g transform=\"translate(66.455179 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"108.465\" xlink:href=\"#m344552fcf8\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 10 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(102.1025 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"147.293571\" xlink:href=\"#m344552fcf8\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 15 -->\n      <g transform=\"translate(140.931071 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"186.122143\" xlink:href=\"#m344552fcf8\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 20 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(179.759643 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"224.950714\" xlink:href=\"#m344552fcf8\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 25 -->\n      <g transform=\"translate(218.588214 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"mf1c94bad17\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mf1c94bad17\" y=\"11.082857\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0 -->\n      <g transform=\"translate(13.5625 14.882076)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mf1c94bad17\" y=\"49.911429\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 5 -->\n      <g transform=\"translate(13.5625 53.710647)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mf1c94bad17\" y=\"88.74\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 10 -->\n      <g transform=\"translate(7.2 92.539219)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mf1c94bad17\" y=\"127.568571\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 15 -->\n      <g transform=\"translate(7.2 131.36779)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mf1c94bad17\" y=\"166.397143\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 20 -->\n      <g transform=\"translate(7.2 170.196362)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mf1c94bad17\" y=\"205.225714\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 25 -->\n      <g transform=\"translate(7.2 209.024933)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 26.925 224.64 \nL 26.925 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 244.365 224.64 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 26.925 7.2 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p0fd281155f\">\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "clean_digit= knn_clf.predict([X_train_mod[0]])\n",
    "show_img(clean_digit)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 251.565 248.518125\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n  <style type=\"text/css\">\n*{stroke-linecap:butt;stroke-linejoin:round;}\n  </style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 251.565 248.518125 \nL 251.565 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \nL 244.365 7.2 \nL 26.925 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p40eb68abe0)\">\n    <image height=\"218\" id=\"image2067d8a8b5\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\n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\" y=\"-6.64\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m849ca3ec3d\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.807857\" xlink:href=\"#m849ca3ec3d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <defs>\n       <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n      </defs>\n      <g transform=\"translate(27.626607 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"69.636429\" xlink:href=\"#m849ca3ec3d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 5 -->\n      <defs>\n       <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n      </defs>\n      <g transform=\"translate(66.455179 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"108.465\" xlink:href=\"#m849ca3ec3d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 10 -->\n      <defs>\n       <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n      </defs>\n      <g transform=\"translate(102.1025 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"147.293571\" xlink:href=\"#m849ca3ec3d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 15 -->\n      <g transform=\"translate(140.931071 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"186.122143\" xlink:href=\"#m849ca3ec3d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 20 -->\n      <defs>\n       <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n      </defs>\n      <g transform=\"translate(179.759643 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"224.950714\" xlink:href=\"#m849ca3ec3d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 25 -->\n      <g transform=\"translate(218.588214 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"mcc2fe8cee0\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mcc2fe8cee0\" y=\"11.082857\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0 -->\n      <g transform=\"translate(13.5625 14.882076)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mcc2fe8cee0\" y=\"49.911429\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 5 -->\n      <g transform=\"translate(13.5625 53.710647)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mcc2fe8cee0\" y=\"88.74\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 10 -->\n      <g transform=\"translate(7.2 92.539219)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mcc2fe8cee0\" y=\"127.568571\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 15 -->\n      <g transform=\"translate(7.2 131.36779)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mcc2fe8cee0\" y=\"166.397143\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 20 -->\n      <g transform=\"translate(7.2 170.196362)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#mcc2fe8cee0\" y=\"205.225714\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 25 -->\n      <g transform=\"translate(7.2 209.024933)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 26.925 224.64 \nL 26.925 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 244.365 224.64 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 26.925 7.2 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p40eb68abe0\">\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_img(y_train_mod[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "RandomizedSearchCV(cv=None, error_score=nan,\n                   estimator=KNeighborsClassifier(algorithm='auto',\n                                                  leaf_size=30,\n                                                  metric='minkowski',\n                                                  metric_params=None,\n                                                  n_jobs=None, n_neighbors=5,\n                                                  p=2, weights='uniform'),\n                   iid='deprecated', n_iter=10, n_jobs=-1,\n                   param_distributions={'n_neighbors': range(5, 26, 5),\n                                        'weights': ['uniform', 'distance']},\n                   pre_dispatch='2*n_jobs', random_state=None, refit=True,\n                   return_train_score=False, scoring=None, verbose=0)"
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import RandomizedSearchCV\n",
    "search = RandomizedSearchCV(\n",
    "    KNeighborsClassifier(),{\n",
    "        'weights':['uniform', 'distance'],\n",
    "        'n_neighbors':range(5,26, 5)\n",
    "    }, n_jobs= -1\n",
    ")\n",
    "\n",
    "search.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 0,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import precision_score, recall_score\n",
    "best = search.best_estimator_.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred = best.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "0.9706285714285714"
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "accuracy_score(y_test, y_pred)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.1-final"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}